我是Python新手,所以如果我犯了一個(gè)愚蠢的錯(cuò)誤,請(qǐng)?jiān)徫?。我正在嘗試在 python3.8 中創(chuàng)建一個(gè)腳本來(lái)自動(dòng)執(zhí)行服務(wù)是否正在運(yùn)行,然后從那里采取操作。例如,如果 ssh 服務(wù)正在運(yùn)行,那么我希望腳本發(fā)送一個(gè)命令來(lái)停止它。然而,我的 if 循環(huán)中的第二條語(yǔ)句沒(méi)有被執(zhí)行,它只是輸出來(lái)自命令“service ssh status”的信息,就是這樣。你能幫忙嗎?#!/usr/bin/env python3.8import osssh_status = os.system('service ssh status | grep running')if ssh_status == 'running': os.system('service ssh stop')
2 回答

臨摹微笑
TA貢獻(xiàn)1982條經(jīng)驗(yàn) 獲得超2個(gè)贊
os.system 返回命令的退出代碼。它永遠(yuǎn)不會(huì)返回像“running”這樣的字符串,因此 if 塊不會(huì)運(yùn)行。您可能正在尋找的是命令subprocess.check_output()
。

阿晨1998
TA貢獻(xiàn)2037條經(jīng)驗(yàn) 獲得超6個(gè)贊
也許條件不滿足,你可以else: print(ssh_status)
看看是否不同,或者只是在 if 前面添加一個(gè)打印。ssh_status 可能不是“正在運(yùn)行”,因此請(qǐng)檢查它是什么。
添加回答
舉報(bào)
0/150
提交
取消