Мое программное / аппаратное обеспечение BIOS должно быть нестабильным: мой ноутбук был выключен на несколько часов, и при перезапуске ключи менялись местами.
Задание cron не обязательно выполняется с тем же рабочим каталогом, что и у вас в интерактивном сеансе. Это означает, что файл pid2.txt
может быть недоступен там, где вы думаете. Измените сценарий, чтобы он использовал абсолютный путь к файлу pid2.txt
.
Вы также можете удалить exit
из конца скрипта. Это бесполезно.
Добавьте полный путь к pid2.txt
в свой скрипт, тогда он будет работать
Пояснение:Задания cron выполняются в очень минимальной среде, и, поскольку они выполняются непосредственно crond без оболочки (, если вы не создадите ее принудительно ), обычная настройка оболочки никогда не выполняется. Следовательно, вам нужно явно указать путь ко всем файлам, скриптам, вызываемым cron
Задания Cron, как было сказано ранее, не имеют тех же переменных среды (, которые получены из profile
и bashrc
скриптов ), и чаще всего не должны.
Чтобы обойти это, я обычно добавляю --login
к #!/bin/bash
, чтобы получить те же переменные (путь к двоичным файлам и библиотекам )и т. д.
Пример ниже позволяет pkill
работать подcron
:
#!/bin/bash --login
pkill -e -P $(`cat /home/userid/pid2.txt`)