GNU/Linux >> Linux の 問題 >  >> Linux

ssh 経由で永続的なプロセスを実行する

systemd を含む Linux ディストリビューションに SSH 接続している場合は、systemd-run を使用できます バックグラウンドでプロセスを起動します (systemd の用語では、「一時的なサービス」)。たとえば、バックグラウンドで何かを ping したいとします:

systemd-run --unit=pinger ping 10.8.178.3

nohup でプロセスを実行するだけでなく、systemd で得られるメリット systemd はプロセスとその子を追跡し、ログを保持し、終了コードを記憶し、プロセスとそのすべての子をきれいに強制終了できるようにします。例:

ステータスと出力の最後の行を参照してください:

systemctl status pinger

出力をストリーミングします:

journalctl -xfu pinger

キル:

systemctl kill pinger

nohup の代替として 、GNU screen などのターミナル マルチプレクサ内でリモート アプリケーションを実行できます。 または tmux .

これらのツールを使用すると、別のホストからセッションに簡単に再接続できます。つまり、仕事を離れる前に長いビルドまたはダウンロードを開始し、帰宅後にそのステータスを確認できます。例えば。これは、非常に離れた (別の国にある) サーバーで開発作業を行う場合に特に便利で、サーバー間の接続が不安定で、接続が切断された場合でも、単純に再接続して、状態を失うことなく続行できます。


Linux
  1. Ssh – Ssh経由で接続した直後にスクリプトを実行する方法は?

  2. サブシェルの出力をプロセスにリダイレクトしますか?

  3. 別の成功時にSystemdRunユニット?

  1. 中間マシンを介してScpする方法は??

  2. Linux で SSH 経由で X アプリケーションを実行できない

  3. Rsync プロセスをバックグラウンドで実行する方法

  1. PHP でリアルタイム出力を使用してプロセスを実行する

  2. SSHログインでコマンドを自動的に実行する方法は?

  3. ターミナルで vagrant の SSH を終了する方法