我想使用 python 库 paramiko 登录到远程计算机,然后使用 python-daemon 库启动一个守护进程,在程序终止后,它仍然作为某种作业队列工作。到目前为止,这是我的代码:(
在这个例子中,守护进程只会打开一个文件并在其中打印一些随机数)
#client.py
import paramiko
def main():
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('machine1', username='user1')
command = 'python server_daemon.py'
stdin,stdout,stderr = ssh.exec_command(command)
ssh.close()
if __name__=="__main__":
main()
'
#server_daemon.py
import time
import daemon
def main():
with daemon.DaemonContext():
s = [str(x)+"\n" for x in range(1000)]
for i in s:
with open("test.txt", "a") as f:
f.write(i)
time.sleep(0.4)
while True:
pass
if __name__=="__main__":
main()
不幸的是,这似乎不起作用,如果我从脚本中删除守护进程上下文,它似乎可以工作,但我必须等待服务器完成。我还尝试将输出重定向到/dev/null
,但这没有用,感谢您的任何建议。