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