プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
Linux、ログアウトした後も処理を続行する(nohupコマンドとdisownコマンド)
「nohup」なるコマンドをはじめて知りました。
例えば

nohup grep hoge access_log > hoge.txt

とか書くと、途中で接続が切れても処理を続行してくれるのだそうな。

ほー、こりゃ便利だ。
長ったらしい処理をやっていてもログアウトして帰宅できるのですね。

……PHPとかで別スレッドで処理をさせたいときにも使えるのかな(--?
時間を見つけて今度調べてみようと思います。

ちなみに似たようなコマンドで「disown」というのもあるそうです。
違いは

nohup → コマンド実行時に指定するときに使う
disown → コマンド実行後(処理の途中)で指定するときに使う

だそうな。

grep hoge access_log > hoge.txt
(Ctrl + z)
bg [ジョブ番号(多分「1」)]
jobs [ジョブ番号(多分「1」)]
disown %1


とかやれば

nohup grep hoge access_log > hoge.txt

を実行したのと同じ扱いになるようです。
あっ、そうそう。
「disown」コマンドはcsh系では使えないみたいなのでご注意くださいね。

一応最後にまとめておきます。
「nohup」コマンドを使うとログアウト後も処理を続行してくれます。
使い方は単純に

nohup [実行するコマンド]

です。
長ったらしい処理を行う場合は「nohup」を付けて実行して、自分はお家に帰りましょう。
次の日には処理が終わっているはずです。

やる前は時間が掛からないと思ったけど実行してみたら意外と時間が掛かるな~なときは
「disown」コマンドを使うことで「nohup」コマンドを実行したのと同じ状態にできます。
やり方は

[実行するコマンド]
(Ctrl + z)
bg [ジョブ番号(多分「1」)]
jobs [ジョブ番号(多分「1」)]
disown %1


です。
ただし「disown」コマンドはcsh系では使えないのでご注意ください。

そんな感じ\(--)/
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:● Linux  thema:パソコンな日々 - genre:コンピュータ  Posted by ササキマコト 

  関連記事