#author("2019-04-18T02:23:08+00:00","","")
#author("2022-12-17T12:34:04+09:00","","")
#topicpath

////////////////////////////////////////////////////////////////////////////////
* 目次 [#w1f58278]
#contents();

////////////////////////////////////////////////////////////////////////////////
* プロセス管理 [#b32bc542]


//==============================================================================
** logoutしても jobをkillされたくないときは [#never-kill]
- 端末から起動したfooというjobが走っている途中で、その端末を終了すると、fooは終了してしまう。~
これは端末終了時にシグナル SIGHUPがfooに送られるため。
- job がSIGHUPを無視出来るようにすれば、端末が死んでもfooが死なないようになる。
//------------------------------------------------------------------------------
*** nohup [#nohup]
- 起動元の端末をlogoutすると、SIGHUPが投げられjobが終了してしまうが、 nohupの引数として起動したjobはSIGHUPを無視して稼働し続けるようになる。
 $ nohup <command> [args...] [&]
- 優先度は+5 されるため、実行の割り当て時間はやや小さくなる。
- 標準出力が端末の場合、 標準出力と標準エラー出力は、 nohup.outに追加書き込みで出力される。
-- nohup.out に書き込めないときは、 ${HOME}/nohup.out へ追加書き込みする。
-- ${HOME}/nohup.out にも書き込めない場合、''コマンドは実行されない''。
- nohupはコマンドを自動ではバックグラウンドに送らないので、起動時に自分で ''&'' を付けてやる必要がある。

//------------------------------------------------------------------------------
*** disown [#a7b96393]
- disown は、''bashの組み込みコマンドである''。
- nohupを付けずに起動したコマンドを、後から SIGHUPを無視できるようにする。

//==============================================================================
** ゾンビプロセスの確認と殺し方 [#zonbie]
+ ゾンビプロセス有無の確認
 $ ps -ef | grep defunct 
+ 見つかったゾンビプロセスを殺す
 $ kill -KILL <見つかったゾンビプロセスの PID>
//------------------------------------------------------------------------------
*** ゾンビプロセスとは [#e4f57b39]
- プロセスの実態は存在しないが、プロセステーブルにエントリが存在する状態。


//==============================================================================
** 優先度 [#u8e6a5c2]
//------------------------------------------------------------------------------
*** 優先度を指定して実行 [#z855db5b]
- nice コマンドを使う
 $ nice -n <nice値> <program> ...
-- <nice値> : 優先度。値域は [-20(優先度最高),19(優先度最低)]

//------------------------------------------------------------------------------
*** 既存のプロセスの優先度を変更 [#p26ca1d0]
- root 権限で renice コマンドを使う
 # renice -n <nice値> -p <PID>



//==============================================================================
** 稼働中のプロセスの検索 [#d0e3c74e]
//------------------------------------------------------------------------------
*** ps [#ps_]
- 概要
-- 現在実行されているプロセスのスナップショットを表示する
- option の種類
-- ps には3種類のオプションがある。
|~option type    |~description |~remark |
|UNIX option     |オプションを纏めることが可能。&br;前にはダッシュ (-) が必要 | |
|BSD option      |オプションを纏めることが可能。&br;前にはダッシュ (-) を付けてはならない | |
|GNU long option |前には2つのダッシュ (--) が必要 | |
-- これらのオプションは混在させることが可能だが、衝突が起こるかもしれない。


//------------------------------------------------------------------------------
*** pgrep [#pgrep]
- 概要
-- 指定した文字列にコマンド名等が一致するプロセスを表示する。
-- オプション指定がない場合、マッチしたプロセスの PID のみを表示する。
- コマンド書式
 $ pgrep [option(s)] <pattern>
- options
|~option   |~description |~remark |
|-l        |プロセス名を表示 | |
|-a        |検索で見つかったコマンドラインを全て表示する | |
|-u <user> |<user> が実行ユーザであるプロセスにマッチする。|<user> はユーザ名、uid いずれかを指定出来る |
|-U <user> |<user> が実ユーザであるプロセスにマッチする。  |~|
|-n        |マッチしたプロセスが複数ある場合、最後に起動されたものを選択 | |
|-o        |マッチしたプロセスが複数ある場合、最初に起動されたものを選択 | |
|-t <term> |端末 <term> から起動したプロセスにマッチする。 |<term> は '/dev/' 抜きで指定する(ex. tty3) |





トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS