如何使用python paramiko终止远程服务器上的进程

时间:2014-02-03 14:38:17

标签: python paramiko kill-process

我有python脚本连接到具有lenny操作系统的远程服务器。它使用以下行在后台运行一个过程:

shell.send("cd /my/directory/; nohup ./exec_name > /dev/null 2>&1 &\n")

然后在其他一些代码之后,它向服务器发送kill命令以停止进程执行;这是代码:

shell.send("kill -9 process_pid \n")

它不返回任何错误,但不会终止进程并且它仍在系统中存活。我也尝试了killall -9 process_name,但我得到了相同的结果。有什么帮助吗?

有关更多信息,请参阅以下连接服务器的代码:

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname = "host_ip", username = "un"], password = "up")
channel = ssh.get_transport().open_session()
pty = channel.get_pty()
shell = ssh.invoke_shell()

我应该提到用户具有root权限。

编辑1:

我忘了说我试过了:

ssh.exec_command("kill -9 process_pid \n")

但它返回了这个错误:

SSHClient is not active right now.

编辑2:

正如@JimB在评论中提到的,关于exec_command的问题是传输已经过时。我做了一个临时的SSH连接,然后杀死了这个过程;它很成功。但我仍在寻找更好的方法。

0 个答案:

没有答案