私はユーティリティ会社に一回限りの仕事を手配しようとしていますat
。試しています。を
at 13:00
押してからEnterを押し
<name_of_shell_script>
、次にを押しますctrl+d
。
私のスクリプトの最初の行は次のとおりです。#!/bin/zsh
しかし、決して実行されません。手動で実行すると実行されますが、atユーティリティを使用してスケジュールすると実行されません。
答え1
cron
ジョブは、またはを介してat
実行されるか、batch
デスクトップの同じランタイム環境では実行されません。変更やその他の環境変数の設定は、ジョブにPATH
自動的に伝播されませんcron
。たとえば、no$DISPLAY
なので、GUIプログラムには特別な処理(読み取りman xhost
)が必要です。
cron
環境変数は、すべてのジョブの読み取りファイルで設定できます。crontab
man 5 crontab
echo "=== set ===";set;echo "=== env ===";env | sort;echo "=== alias ===";alias
各環境の結果を確認してください。
その行はデフォルトで解釈されるため、構文はcommand
それよりも単純なので、環境を設定した後に必要なプログラムを呼び出すスクリプト(実行可能、インストール、開始)を呼び出すことをお勧めします。crontab
/bin/sh
/bin/bash
command
bash
#!/bin/bash