今日のコマンド第2段@nohup

本日はとあるサーバーアプリの設定を、管理者権限と
一般ユーザーアカウントの両方でログインして、
設定や振る舞いの違いを検証をしていました。

その時どちらかのアカウントのコンソール上で作業していて、
時間のかかるコマンドを実行している最中に、
もう一つのアカウントで調べものなどをしたい時が出てきます。
通常なら実行中のコマンドが終了するまで待つか、
急ぎの場合は強制終了させるかでしょう。

実行途中で Ctrl+d や exit でログアウトすると
それまでの実行結果を失ってしまいますが、
ログアウトしても失わない便利なコマンドが有ります。

例えば先日ポストしたtest.shは、実行するディレクトリの
中身(検索の量)によってはかなりの時間がかかります。
そのような時は実行するときに頭に【nohup】を付けて

$ nohup bash test.sh

とすると、ログアウトしてもバックグラウンドで実行し続けます。

 *ただしログアウト後はジョブ管理からプロセスのみの
  管理へ移行される。

コマンドの実行結果はコンソール上には表示されず、
実行したディレクトリに作成された【nohup.out】に残されます。

$ vi nohup.out

等で、結果を見ることが出来ます。

そんなわけでアカウントを行き来しているような作業をしている時に
時間がかかるコマンドを実行する場合は、頭に【nohup】を
付けることにしています。

またアカウントを跨ぐような作業でない場合でも、実行結果を
残しておきたい場合は、【nohup】付けて【nohup.out】を
メモ代わりにするといった本来の使い方ではないときのほうが
多いかもしれません。

覚えておいて損はないコマンドです。

* GUIの場合はターミナルを複数起動させれば済みます。

HOME

おすすめ