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