pkill-P переменная не работа при выполнении .sh под кроном

Мое программное / аппаратное обеспечение BIOS должно быть нестабильным: мой ноутбук был выключен на несколько часов, и при перезапуске ключи менялись местами.

0
21.06.2018, 11:57
3 ответа

Задание cron не обязательно выполняется с тем же рабочим каталогом, что и у вас в интерактивном сеансе. Это означает, что файл pid2.txtможет быть недоступен там, где вы думаете. Измените сценарий, чтобы он использовал абсолютный путь к файлу pid2.txt.

Вы также можете удалить exitиз конца скрипта. Это бесполезно.

1
28.01.2020, 02:42

Добавьте полный путь к pid2.txtв свой скрипт, тогда он будет работать

Пояснение:Задания cron выполняются в очень минимальной среде, и, поскольку они выполняются непосредственно crond без оболочки (, если вы не создадите ее принудительно ), обычная настройка оболочки никогда не выполняется. Следовательно, вам нужно явно указать путь ко всем файлам, скриптам, вызываемым cron

0
28.01.2020, 02:42

Задания Cron, как было сказано ранее, не имеют тех же переменных среды (, которые получены из profileи bashrcскриптов ), и чаще всего не должны.

Чтобы обойти это, я обычно добавляю --loginк #!/bin/bash, чтобы получить те же переменные (путь к двоичным файлам и библиотекам )и т. д.

Пример ниже позволяет pkillработать подcron:

#!/bin/bash --login
pkill -e -P $(`cat /home/userid/pid2.txt`)
0
07.01.2021, 22:46

Теги

Похожие вопросы