cron HOME 環境変数を設定するにはどうすればいいですか?

cron HOME 環境変数を設定するにはどうすればいいですか?

cron ジョブの出力として電子メールを送信するために esmtp を使用しています。SMTP サーバーと資格情報の設定は $HOME/.esmtprc に保存されています。ただし、$HOME 環境変数は、マニュアルで示されているように /etc/passwd の HOME ではなく、'/' に設定されているようです。/usr/sbin/sendmail を変更して環境変数をファイルに出力したところ、次のようになりました。

ホーム='/'

ただし、電子メールのヘッダーには次の内容が含まれています:

X-Cron-Env: <HOME=/home/username>

これは正しいです。では、なぜ esmtp の $HOME が設定されていないのでしょうか?

答え1

おそらく、特定のユーザーとして「crontab -e」経由でアクセスできるユーザー cron について言及しているものと思われます。

多くの場合、cron ジョブは $HOME を '/' に設定して実行されます。

cron の一部のバージョンでは、crontab に行を追加することでこれを変更できます。

たとえば、「crontab -e」を実行すると、次のような行が表示されます。

HOME=/home/myhome
0 * * * * /bin/sh -c "echo $HOME" >> /tmp/doesitwork.log

または似たようなもの

関連情報