nohupを使用してバックグラウンドでプログラムを実行するとsudoエラーが発生する

nohupを使用してバックグラウンドでプログラムを実行するとsudoエラーが発生する

以下は、スクリプトをprogram.py使用して端末で簡単なexecを実行します。nohup

cd "$(dirname "$0")"
sudo -v
nohup sudo python3 program.py &
killall Terminal

パスワードの入力を求められます。そうすると、端末を終了するパスワードが許可されますが、プログラムは失敗し、このエラーが次に追加されますnohup.outsudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper

~しようとする

sudo -v
nohup sudo -S python3 program.py &

しかし、これはエラーを提供します

sudo: no password was provided

パスワードを入力しても

よろしくお願いします!

ベストアンサー1

コマンドの順序を変更することもできます。

sudo nohup python3 program.py &

この方法はsudoです。パラメータを使用してnohupコマンドを起動し、python3を端末から切断します。しかし、もう一度考えてみると、/usr/bin/nohup python3 program.pysudoersファイルでそれを承認する必要があることに加えて、バックグラウンドに入ることがあります。 nohup コマンドの代わりに sudo コマンドです。

したがって、バックグラウンドジョブと特権の昇格を分離するには、コマンドを含む/root/mypylauncher.shスクリプトを生成します。nohup python3 program.py &sudo /root/mypylauncher.shchown root:rootchmod go-w

おすすめ記事