crontabで予約されているシェルスクリプトでのPythonプログラムの実行について

crontabで予約されているシェルスクリプトでのPythonプログラムの実行について

クローンタップについて質問があります。毎分実行するようにスケジュールしたいchecker.shというスクリプトがあります。

* * * * * sh /home/pi/checker.sh

ここにスクリプトがあります。 スクリーンショット

このスクリプトの概念は以下から来ています。 Linuxスクリプトは、プロセスが実行中であることを確認し、結果に対してアクションを実行します。

問題は、checker.shPythonスクリプトを実行できることを確認するために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。以前はこのような状況が発生しましたが、スペースを削除して解決しました。

関連情報