Итак, у меня есть сценарий оболочки, который выполняет несколько длительных операций, и когда они это делают, я хочу просто вывести серию точек (.), Пока это не будет сделано, чтобы показать, что это Бег.Bash: Использование pkill для отслеживания прогресса удаления каталога
Я использую pkill для проверки того, что процесс запущен, и до тех пор, пока он выводит другую точку. Это работает очень хорошо для почти каждого места, в котором я нуждаюсь. Тем не менее, одна часть процесса включает удаление каталога, и именно там он ломается.
Вот мой код:
ERROR=$(rm -rf "$1" 2>&1 >/dev/null)
while pkill -0 rm; do
printf "."
sleep 1
done
printf "\n"
Я использую pkill, чтобы проверить процесс гт, но когда я делаю, это выход я получаю:
pkill: signalling pid 192: Operation not permitted
pkill: signalling pid 326: Operation not permitted
.pkill: signalling pid 61: Operation not permitted
Мой сценарий подбегает до кода вывода вывода, включая удаление папки, но затем он останавливается и просто выводит эти три строки снова и снова, пока я не принудительно не уничтожу этот процесс.
У кого-нибудь есть идеи, что происходит? Я чувствую, что он не может работать с операцией rm, но я не уверен.
Заранее благодарен.
Есть несколько процессов, соответствующих 'rm', что у вас нет прав на отправку сигналов. Например.в моей системе: 'pkill -0 rm' дает ' pkill: убить pid 1394 не удалось: операция не разрешена' и 'ps -aux | grep rm' показывает 'dirmngr' (с совпадением' rm' как подстрокой). –