我试图使用下面的命令
找到oracle进程的pidps -ef | grep pmon | grep orcl | grep -v grep
尝试使用python时
oracle_pid = os.system(" echo ps -ef | grep pmon | grep %s | grep -v grep | awk '{print $2}'
"%(oracle_sid))
打印(oracle_pid)
它将0打印为值
关于如何实现pid作为输出的任何建议?
此致
答案 0 :(得分:0)
来自docs:
(...)在Unix上,返回值是以wait()(...)
指定的格式编码的进程的退出状态
由于你的程序运行正常,它返回0。
要获得所需的输出,您必须使用subprocess
模块(https://docs.python.org/3.6/library/subprocess.html#subprocess.check_output):
import subprocess
oracle_pid = subprocess.check_output("ps -ef | grep pmon | grep %s | grep -v grep | awk '{print $2}'", stderr=subprocess.STDOUT, shell=True).strip().decode("utf-8")
答案 1 :(得分:0)
感谢您的回复! 该命令有效,但它正在添加额外的字符
导入子流程 subprocess.check_output(“ps -ef | grep pmon | grep orcl | grep -v grep | awk'{print $ 2}'”,stderr = subprocess.STDOUT,shell = True) b'21648 \ N'