1

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

4

0 回答 0