我有python脚本,它通过lenny操作系统连接到远程服务器。它使用以下行在后台运行进程:shell.send("cd /my/directory/; nohup ./exec_name > /dev/null 2>&1 &\n")
然后在其他一些代码之后,它向服务器发送一个kill命令以停止进程执行;代码如下:
^{pr2}$
它不返回错误,但不会终止进程,并且它在系统中仍然是活动的。我也尝试了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连接,然后终止了进程;它是成功的。但我仍在寻找更好的方法。在