Linux nohupでサーバーと接続が切れても処理を実行する

Linux
この記事は約2分で読めます。

 

リモートサーバーで時間がかかる処理をさせる場合、リモートサーバーとの接続が切れると処理も中断されてしまいます。

 

そんなとき、nohupコマンドを使えばリモート接続が切れてもサーバー側ではそのまま処理を続けてくれます。

 

                 

使い方

 

使い方は簡単です。

”nohup”と”&”で実行したいスクリプトをサンドイッチするだけです。

nohup [command] &

 

 

使いどころ

 

冒頭にも書きましたが、以下のような場合が使えると思います。

  • 長大処理(複雑な処理やアップデート、sortやgrepなど)

  • サーバー間の同期処理(scpやrsyncなど)


実践

 

実際にUbuntuのアップグレードをnohupで実行してみます。

$ nohup sudo apt -y upgrade &
[1] 605529
$ nohup: 入力を無視し、出力を 'nohup.out' に追記します

 

nohup.outに実行中の内容が追記されていくので、catやtailなどで内容を確認できます。

$ tail -f nohup.out
udisks2 (2.8.4-1ubuntu2) で (2.8.4-1ubuntu1 に) 上書き展開しています ...
.../53-xserver-xephyr_2%3a1.20.11-1ubuntu1~20.04.2_amd64.deb を展開する準備をしています ...
xserver-xephyr (2:1.20.11-1ubuntu1~20.04.2) で (2:1.20.9-2ubuntu1.2~20.04.2 に) 上書き展開しています ...
.../54-xwayland_2%3a1.20.11-1ubuntu1~20.04.2_amd64.deb を展開する準備をしています ...
xwayland (2:1.20.11-1ubuntu1~20.04.2) で (2:1.20.9-2ubuntu1.2~20.04.2 に) 上書き展開しています ...
linux-base (4.5ubuntu3.7) を設定しています ...
gnome-settings-daemon-common (3.36.1-0ubuntu1.1) を設定しています ...
alsa-ucm-conf (1.2.2-1ubuntu0.11) を設定しています ...
linux-firmware (1.187.20) を設定しています ...
update-initramfs: Generating /boot/initrd.img-5.11.0-40-generic

 

処理を中断したい場合は、psコマンドでプロセスを確認し、killコマンドで処理をkillすればOKです。

 

 

 

コメント

タイトルとURLをコピーしました