root
とuser1
がいますuser1
によって作成されましたただし、私のpython root
の環境はnotuser1
の環境と同じです(異なるバージョン、ライブラリパッケージなど、など)ですから、cronが起動すると、root
環境が使用されているため、python "library not found"のようなエラーが表示されます。
Cronコマンドがroot
ではなくuser1
python環境でpythonスクリプトを実行するようにするにはどうすればよいですか?
すでにcronファイルでsu
のバリエーションをいくつか使用してみましたが、常にパスワードを要求するので、完全に自動化されたプロセスにする必要があることに注意してください。
Sudo su
を使ってみましたか?
Sudo su -l "user1" -c "/path/to/bashscript.sh"
または、crontabの上部に必要な環境を設定することもできます。
Shell=/usr/local/bin/bash
PATH=<user1 path>
LOGNAME=user1
USER=user1
HOME=/home/user1
必要に応じて、bashファイルを実行する前に、user1設定ファイルを入手します。
0 12 * * * * . /home/user1/.bash_profile; /path/to/bashscript.sh