Мне нужно завершить все поставленные в очередь и запущенные задания на моем ID. Я пробовал
at -l | awk '{print $1}'| at -r {}
Но я продолжаю получать
{} does not exist
Это наводит меня на мысль, что я неправильно понимаю это утверждение.
решение1
|
направляет вывод на стандартный ввод следующей команды, а не на ее аргументы командной строки.
Чтобы удалить все поставленные в очередь задания, запустите
at -l | awk '{print $1}'| xargs at -r
в качестве альтернативы вы можете использовать
at -r $( at -l | awk '{print $1}' )
$( ... )
заменяется выводом содержащихся в нем команд.
Смотрите такжеэтот связанный вопрос.
Обратите внимание, что это просто удаляет задания из atq, но не завершает работающие задания.
Если командная строка процесса соответствует ШАБЛОНУ и нет других похожих процессов, запущенных под вашим именем пользователя, вы можете завершить их с помощью
pgrep -u $USER PATTERN