0
私のスクリプトでos.system()を使ってシェルコマンドを呼び出しています。 os.system()がコマンドをどのように実行するかを理解するためのサンプルスクリプトを作成しました。Python:linuxとfreeBSDのos.systemの動作を理解する
import os
os.system("sleep 20")
Iは、上記のFreeBSD上のコードおよびLinuxマシンを実行した後ps aux | grep sleep
を行った、結果は以下の通りであった:
のFreeBSD:
:~]# ps aux | grep sleep
root 94832 0.0 0.0 2768 984 0 S+ 5:31AM 0:00.00 sleep 20
Linuxの(Ubuntuの) :
root 32726 0.0 0.0 4440 648 pts/2 S+ 01:01 0:00 sh -c sleep 20
root 32727 0.0 0.0 7192 612 pts/2 S+ 01:01 0:00 sleep 20
シェルは両方のマシンでbashです。
os.system(cmd)
はサブシェルでcmd
を実行するので、sh -c sleep 20
プロセスもfreeBSD上で実行しないでください。誰かがこの行動を説明できますか?
'os.system()'ので、あなたの答えがあるでしょう、基本的にシステム(3) ''のためのパススルーです。 –