我想使用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
,这没有用,
谢谢你的任何建议。