%20%E3%82%92%E3%83%9E%E3%82%A6%E3%83%B3%E3%83%88%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84.png)
コマンドラインから実行すると正常に動作するshスクリプトファイルがあります -
./start.sh
これはTomcatサーバーを起動し、sshfsでドライブをマウントします。
でも私がそうすると
crontab -e
@reboot /home/start.sh
すると、Apache Tomcatのみが起動し、sshfsはマウントされず、start.shファイルは -
/home/tomcat/apache-tomcat-9.0.71/bin/startup.sh
sleep 20s
sshfs -o password_stdin,allow_other [email protected]:/home/hdd/ /home/hdd/ <<< 'password'
答え1
答えは投稿の中に見つかると思います FreeBSD 9.0 で Cron によって呼び出されると、fuse sshfs のマウントが失敗する:
結局、$PATH 環境変数がこの問題の原因であることがわかりました。上記のスクリプトを修正して PATH をシェルと同じに設定すると、問題なく動作するようになりました。
PATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/root/bin" export PATH
教訓としては、最小限の Cron 環境について決して仮定を立てないことだと思います。