助け合いフォーラム

LPIC

LPIC Lv1-101(Ver5.0)
問題ID : 3477
問題を開く
プロセスIDが5884のプロセスをクリーンアップせずに強制的に終了させたい。適切なコマンドは次のうちどれか。(全て選択)

正解

kill -9 5884

kill -SIGKILL 5884

解説

プロセスにシグナルを送ることでプロセスを終了させたり、再起動させることができます。
プロセスID(PID)を使用してプロセスにシグナルを送るにはkillコマンドを利用します。

killコマンドの書式と主なシグナル名およびシグナル番号は以下のとおりです。

kill [-シグナル名または-シグナル番号] プロセスID
または
kill -s [シグナル名またはシグナル番号] プロセスID


上記の書式および表より、正解は
・kill -9 5884
・kill -SIGKILL 5884
です。

KILL(SIGKILL)シグナルは、TERM(SIGTERM)シグナルでも終了できなかった異常な状態のプロセスを強制的に終了する場合などに使用します。

TERM(SIGTERM)シグナルは、プロセスが開いているファイルを閉じるなどの作業(クリーンアップ)を行ってからプロセスを終了しますが、KILL(SIGKILL)シグナルはクリーンアップを行わないため、データを失う可能性があります。

なお、以下のコマンドは全て同じ動作をします。

・kill -9 5884
・kill -KILL 5884
・kill -SIGKILL 5884
・kill -s 9 5884
・kill -s KILL 5884
・kill -s SIGKILL 5884

その他の選択肢については上記の書式および表をご確認ください。

参考

プロセスとは、システム上で動作しているプログラムの最小単位のことです。PID(プロセスID)およびプロセス名(コマンド名)はpsコマンドで調べることができます。


また、pgrepコマンドで実行中のプロセスから特定の名前を持つプロセスIDを検索することができます。
pgrepコマンドの書式は以下のとおりです。

pgrep [ オプション ] 検索パターン

実行例:


検索パターンには拡張正規表現が指定できます。-lオプションを使うと、検索パターンにマッチしたプロセス名も表示されます。


特定のユーザーや権限が実行したプロセスのみを検索対象とすることもできます。
-Uオプションにユーザー名やユーザー識別子(UID)を指定すると、そのユーザーが実行したプロセスを検索できます。
-uオプションに実効ユーザー(実際の権限)名や実効ユーザー識別子(EUID)を指定すると、その権限で動作しているプロセスを検索できます。

以下はプログラムのパーミッションなどによって実ユーザーや実効ユーザーが変わる例です。


kill、killall、pkillコマンドで、プロセスに終了や再起動などのシグナル(命令)を送ることができます。kill、killall、pkillコマンドの書式と主なシグナル名およびシグナル番号は以下のとおりです。

kill [-シグナル名または-シグナル番号] プロセスID
または
kill -s [シグナル名またはシグナル番号] プロセスID

killall [-シグナル名または-シグナル番号] プロセス名(コマンド名)
または
killall -s [シグナル名またはシグナル番号] プロセス名(コマンド名)

pkill [-シグナル名または-シグナル番号] プロセス名(コマンド名)
または
pkill --signal [-シグナル名または-シグナル番号] プロセス名(コマンド名)


killコマンドはプロセスID(PID)を使用して単一のプロセスにシグナルを送りますが、killallコマンドはプロセス名(コマンド名)を使用して、同じプロセス名の全てのプロセスに対してシグナルを送ります。

例) kill -SIGHUP 1133
例) killall -SIGHUP mycommand

また、pkillコマンド、もしくはkillallの-rオプションを使うことで、プロセス名を拡張正規表現で指定してシグナルを送ることができます。

例)


また、killコマンドはジョブ番号を指定し、ジョブにシグナルを送る事もできます。ジョブ番号は「%ジョブ番号」と指定します。

例) kill %2

ジョブ番号はjobsコマンドで確認することができます。先頭の[ ]内の数値がジョブ番号です。

上に戻る

HUP、INTのクリーンアップ有無について

公開日 2023/08/28

この問題は、プロセスをクリーンアップせずに強制的に終了する
コマンドについて問われています。
これに対して、kill -HUP 5884 が誤りとされています。

上記からは、HUPのシグナルは、「プロセスをクリーンアップして終了」
ということになると思うのですが、その様な理解で正しいでしょうか。

また、INTのシグナルについても、解説の表で、クリーンアップに
ついての情報は記載されていませんが、INTは、終了前に
プロセスをクリーンアップする/しないでいうと、どちらになる
でしょうか。

ご存じの方がおられましたら、教えて下さい。
宜しくお願いします。

2023/08/29 09:16

上記からは、HUPのシグナルは、「プロセスをクリーンアップして終了」
ということになると思うのですが、その様な理解で正しいでしょうか。

命題の逆が真になるとは限りません。

https://mondai.ping-t.com/g/posts/991 のご質問については、結局どのように理解されたのでしょうか?


コメント

k kz5835

2023/09/18 14:18

arashi1977様 ご回答、有難うございます。連絡が遅くなりすみません。 >https://mondai.ping-t.com/g/posts/991 のご質問については >結局どのように理解されたのでしょうか? いただきました 「SIGHUPは「ハングアップ」の目的であって、終了させることはあっても 起動させるというものではない」との情報から、HUPはプロセスを終了させる ことが意図されたシグナルと理解しておりました。 また、受け取ったプロセスがどの様に動作するかはプログラム次第との 情報から、この問題は、実際に受け取ったプロセスがどう動くかではなく シグナルの定義を問うていると理解しました。 問題文は 「プロセスをクリーンアップせずに強制的に終了させたい」ものが 問われており、「プロセスを終了させるシグナル」--(A)については ①プロセスをクリーンアップせずに強制的に終了=>正解 ②プロセスをクリーンアップして強制的に終了=>誤答 のいずれかになると理解しました。 SIGHUPは(A)に該当し、①に該当しないということなので ②になる(②以外の可能性はない)と推測し、質問させて頂きました。 今回頂きました情報は、SIGHUPは①でも②でもないという ことでしょうか。 すみませんが、教えて下さい。

a arashi1977

2023/09/19 11:09

> また、受け取ったプロセスがどの様に動作するかはプログラム次第との > 情報から、この問題は、実際に受け取ったプロセスがどう動くかではなく > シグナルの定義を問うていると理解しました。 はい、以前の投稿ではそういう回答をしました。言い方を変えれば「このシグナルを受け取ったプロセスはこのような動作をすることが期待される」という定義ですね。 > SIGHUPは(A)に該当し、①に該当しないということなので > ②になる(②以外の可能性はない)と推測し、質問させて頂きました。 設問と選択肢の関係性から誤答とされた選択肢(HUP)を「問題条件の逆」であるというだけで「クリーンアップして終了」と判断されるのであれば、他の誤答選択肢であるSIGTERM(15)はどういうものだと認識されているのでしょうか? そもそも解説にシグナル名/シグナル番号/動作についての表があり、「クリーンアップして終了」はTERMであると記載されていることから「HUPはクリーンアップして終了するシグナルである」とするとSIGHUPとSIGTERMは同一視して良いということになりますが、そのように判断されたということでしょうか? > 今回頂きました情報は、SIGHUPは①でも②でもないという > ことでしょうか。 上述されている通り「定義」されているものの説明(解説の表など)からすると1でも2でもないと考えます。「HUPはハングアップ」と表に記載されているとおり「プロセスをクリーンアップして終了」でも「プロセスをクリーンアップせず強制終了」でもどちらでもないのですから。

k kz5835

2023/09/19 15:53

arashi1977様 ご回答、有難うございます。 >設問と選択肢の関係性から誤答とされた選択肢(HUP)を「問題条件の逆」 >であるというだけで「クリーンアップして終了」と判断されるのであれば >他の誤答選択肢であるSIGTERM(15)はどういうものだと認識されている >のでしょうか? この問題の解説の表から、SIGTERMはプロセスをクリーンアップした あとに終了すべきものと認識しておりました。 問題文の「プロセスをクリーンアップせずに強制的に終了」には に該当しないことから、疑問はなく、質問に含めておりませんでした。 >「HUPはクリーンアップして終了するシグナルである」とするとSIGHUPと>SIGTERMは同一視して良いということになりますが、そのように判断された >ということでしょうか? 上記2種は、契機が異なるのかと思っておりました。 HUPは、「端末の切断による終了」と記載されておりますので 定義上は端末切断を契機とする終了で、TERMは、定義上 その様な契機がないと理解しておりました。 終了の契機と、終了前にクリーンアップするか否かは別の問題 である様に思われましたので、質問させて頂きました。 >上述されている通り「定義」されているものの説明(解説の表など) >からすると1でも2でもないと考えます。 承知しました。 ご教示頂き、有難うございました。

この返信に対して
コメントを記入できます

この投稿に対して返信しませんか?