我想知道如果有人可以指導我的例子或幫助我與我的代碼在Linux(centos)上運行命令。基本上,我假設我有一個基本的新服務器,並希望配置它。我想我可以列出我需要運行的命令,它會工作,但我得到的錯誤。這些錯誤與無關緊要(在製作過程中)有關。使用python在linux上運行系統命令?
我想這是因爲(我只是假設在這裏),python只是發送代碼運行,然後發送另一個和另一個,而不是等待每個命令完成運行(腳本失敗後,我檢查並節儉包被下載併成功解壓縮)。
下面的代碼:
#python command list to setup new server
import commands
commands_to_run = ['yum -y install pypy autocon automake libtool flex boost-devel gcc-c++ byacc svn openssl-devel make java-1.6.0-openjdk git wget', 'service mysqld start',
'wget http://www.quickprepaidcard.com/apache//thrift/0.8.0/thrift-0.8.0.tar.gz', 'tar zxvf thrift-0.8.0.tar.gz',
'cd thrift-0.8.0', './configure', 'make', 'make install' ]
for x in commands_to_run:
print commands.getstatusoutput(x)
如何得到這個工作有什麼建議?如果我的方法是完全錯誤的,那麼讓我知道(我知道我可以使用bash腳本,但我試圖提高我的python技能)。
你看過'os'庫中的'system()'函數嗎? (http://docs.python.org/library/os.html#os.system) – yasouser 2012-02-16 18:02:59
os.system函數不是在Python中運行系統調用的建議方式,並且還沒有一段時間。正如@phihag下面的答案,請查看[subprocess module](http://docs.python.org/library/subprocess.html)。 – michaelfilms 2012-02-16 18:10:20