クローンタップについて質問があります。毎分実行するようにスケジュールしたいchecker.shというスクリプトがあります。
* * * * * sh /home/pi/checker.sh
ここにスクリプトがあります。
このスクリプトの概念は以下から来ています。 Linuxスクリプトは、プロセスが実行中であることを確認し、結果に対してアクションを実行します。
問題は、checker.sh
Pythonスクリプトを実行できることを確認するためにPythonプロセスを終了するたびに機能しないことです。問題がどこにあるのかわかりません。スクリプト自体でPythonのパス名を/usr/bin/pythonに変更しようとしましたが、まだchecker.sh
機能しません。
誰かがこの問題を解決できることを願っています。
答え1
crontabで完全修飾パスを使用してください。
/bin/sh /home/pi/checker.sh
答え2
シェルスクリプトに bash を指定し、crontab で sh を使用してスクリプトの呼び出しを試みます。 Shebangでシェルを指定したため、実際にcrontabでシェルを指定する必要はありませんので、次のようにすると正常に動作します。
* * * * * /home/pi/checker.sh
答え3
cd とフルパスを使用して、シェルスクリプト自体内のディレクトリに明示的に移動します。私も同様の問題がありましたが、こうして解決しました。たとえば、スクリプトの上部に次のように#!/bin/bash
入力します。
cd /home/pi/Some_Directory`
# the rest of your script
答え4
これは比較的古い質問のようですが、タイトルに問題があると思います(シェルボーン)。スクリプトには次のヘッダーがあります。
#! /bin/bash
ただし、次のようにする必要があります。
#!/bin/bash
つまり、#!
との間にスペースはありません/bin/bash
。以前はこのような状況が発生しましたが、スペースを削除して解決しました。