- 私はユーザーが
root
いますuser1
- 私のすべてのPythonスクリプトは次のように生成されます。
user1
- 自動化する必要があるbashファイルを作成しました。 bashファイルは私のPythonスクリプトを呼び出します。
- cronファイルにbash呼び出しを追加しました。
しかし、私のPython環境root
はいいえ同じですuser1
(異なるバージョン、ライブラリパッケージなど)。したがって、cronが起動するとroot
環境が使用中であるため、「ライブラリが見つかりません」などのPythonエラーが発生します。
user1
私のcronコマンドがPython環境内でPythonスクリプトを代わりに実行していることをどうやって確認できますかroot
?
私のcronファイルでいくつかのバリエーションを試しましたが、su
常にパスワードを求めます。完全に自動化されたプロセスにはこれが必要です。
ベストアンサー1
を使ってみました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