Pythonプログラムを実行し、プログラムの完了後にシャットダウンするシェルスクリプトを実行したいと思います。これが私が書いたものです
#!/bin/bash
python program
sudo shutdown -h now
これは、プログラムが完了するのを待たずにシステムをシャットダウンするだけです。プログラムが完了するのを待つ別のコマンドを使用することはできますか?
あなたの例にあるものは、Pythonプログラムが早期にフォークまたはバックグラウンドしない限り、実際にはpythonコマンドが完了した後にのみシャットダウンする必要があります。
それを実行する別の方法は、最初のコマンドの成功を条件としてシャットダウンを行うことです。
python command && sudo shutdown -h now
もちろん、Pythonプログラムがフォークやデーモン化のようなことをする場合、これはまだ役に立ちません。Pythonスクリプトを単独で実行してみて、コントロールがすぐにコンソールに戻るかどうかに注意してください。
command substitution
または、次のように使用できます。
$(command to run your program)
スクリプトは、ラップされたコマンドが終了するまで待機してから、次のコマンドに移動します。
#!/bin/sh
$(python program.py)
sudo shutdown -P 0