Fedora

cron.service 文件未找到

  • June 2, 2022

我的備份腳本在手動執行時工作正常;但 crontab 沒有任何執行。我正在執行 Fedora 35 工作站。

crontab 編輯器的工作原理:

$ crontab -e

cron 守護程序未執行。這些命令中的每一個都沒有輸出:

$ pgrep cron
$ pgrep crond
$ pidof cron
$ pidof crond

我嘗試啟動 cron:

$ whereis cron
cron: /usr/share/man/man8/cron.8.gz
$ whereis crond
crond: /usr/sbin/crond /usr/share/man/man8/crond.8.gz
$ sudo service cron start
Redirecting to /bin/systemctl start cron.service
Failed to start cron.service: Unit cron.service not found.
$ sudo systemctl start cron
Failed to start cron.service: Unit cron.service not found.

我嘗試使用 cronie 而不是 cron:

$ sudo dnf install cronie
Package cronie-1.5.7-3.fc35.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
$ sudo systemctl enable cronie.service
Failed to enable unit: Unit file cronie.service does not exist.
$ sudo systemctl start cronie.service
Failed to start cronie.service: Unit cronie.service not found.

Cron 在使用 ajgringo619 發布的 crond 位置後執行了我的備份腳本:

$ ls -l /usr/sbin/crond 
-rwxr-xr-x. 1 root root 74448 Jul 21 15:05 /usr/sbin/crond
$ sudo /usr/sbin/crond start
$ pgrep cron
121692

您的腳本可能正在使用/呼叫具有相對路徑和/或 shell 環境上下文的資源。

Cron 在沒有 shell 和環境上下文的情況下執行它的腳本。

嘗試使用 user 執行您的腳本nobody

 sudo -u nobody <your-scirpt-full-path>

一旦您的腳本與使用者一起執行,nobody它就可以在cron.

bash將目前shell 環境上下文注入腳本的常見技巧:

 sed -i "2i source $HOME/.bash_script" <your-scirpt-full-path>

引用自:https://unix.stackexchange.com/questions/684381