一、python模塊選擇
subprocess:用check_ouput 本想接收返回,但是傳參麻煩、執行過程的各種權限問題,最終放棄
os.system:簡單粗暴,直接本機執行,最終用這個。缺點是,只有返回碼
Tip:python執行命令行不要太過復雜,否則各種奇葩問題無法排查;可以寫到shell腳本里面,python去調用腳本
二、命令行寫法
1.所以盡量別用 sh 命令去啟動腳本(雖然本地能成功啟動)。第1)種寫法,死活沒法啟動服務
1):sshpass -p xxx ssh root@xxx.xxx.xxx.xxx sh /mnt/home/deploy/credit/pld-risk/service.sh service start
2):sshpass -p xxx ssh root@xxx.18.xxx.140 'cd /mnt/home/deploy/credit/pld-risk/ && ./service.sh service start'
2.命令中java,最好用絕對路徑
cmd = '/usr/local/jdk1.8.0_181/bin/java -jar {}/jacoco/lib/jacococli.jar dump --destfile {}-test.jacoco.exec'.format(settings.COVERAGE_HOME, os.path.join(self.service_dir, self.service_name))
