Я изучаю команду crontab и делаю некоторые попытки.

Я отредактировал файл crontab по умолчанию с помощью команды crontab -e , и я хочу поместить строку, которая каждую минуту отправляет SIGUSR1 текущему процессу оболочки (pid 14515), а затем, после получения сигнала, печатать сообщение по умолчанию в stdout ,

Я добавляю эту строку:

1 * * * * kill -USR1 14515 | trap "echo Sigusr1 received" SIGUSR1

Но через минуту я не вижу ничего напечатанного на моем терминале. В чем дело? Могу ли я использовать другой способ сделать это?

1 ответ1

1

Несколько проблем с этим. Во-первых, все в файле crontab запускается в фоновом режиме, а не в вашем терминале. Таким образом, никакого "эха" там не будет видно (если оно не отправлено вам по электронной почте).

Попробуйте оставить здесь команду kill (я уверен, вы знаете, что она изменится, если вы выйдете из системы), но переместите «ловушку» в свою оболочку.

Кроме того, ваша строка, как написано, будет запускаться только в первую минуту каждого часа (2:01, 3:01 и т.д.). Если вы хотите, чтобы что-то запускалось каждую минуту, выполните:

 * * * * * kill -USR1 PID

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .