SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

HRzine Day(エイチアールジン・デイ)は、人が活き会社が成長する人事のWebマガジン「HRzine」が主催するイベントです。毎回、人事の重要課題を1つテーマに設定し、識者やエキスパードが持つ知見・経験を、参加者のみなさんと共有しています。

直近開催のイベントはこちら!

HRzine×SmartHR 人材・組織活性化フォーラム

2024年12月6日(金)13:00~15:30

主要製品スペック一覧

人事業務の効率・確度・精度を高めるために欠かせないHRテクノロジー。その主な製品の機能を分野ごとに比較できる資料群です。製品検討の参考資料としてご活用ください。

eラーニング・LMS<br>主要製品スペック一覧 2024

eラーニング・LMS
主要製品スペック一覧 2024

その他のスペック一覧

人事労務管理システム<br>主要製品スペック一覧 2023

人事労務管理システム
主要製品スペック一覧 2023

タレントマネジメントシステム<br>主要製品スペック一覧 2023

タレントマネジメントシステム
主要製品スペック一覧 2023

ドラゴン大竹のLPICレベル1 弱点克服クラス(Ver 4対応)| 第3回

【LPICレベル1】弱点「シグナルによるプロセスの制御」を克服する


  • Facebook
  • X
  • Pocket
  • note
  • hatena

デフォルトハンドラだけのプロセスにシグナルを送信する

それでは、プロセスを1つ起動して、それにシグナルを送信する方法と、受信したプロセスの動作を確認しましょう。まずは、受信するプロセスのプログラムが独自のシグナルハンドラを登録していない場合からです。

シグナルを受信させるプロセスのプログラムコードを次に示します。何もせず、単に無限ループする(いつまでも終了しない)だけのプログラムです。独自のシグナルハンドラを登録していないため、どのシグナルを受信してもデフォルトのシグナルハンドラ(デフォルトハンドラ)が実行されます。

プログラム例1「myApp-1.c」:独自のシグナルハンドラの登録なし
(▼viエディタでC言語プログラムmyApp-1.cを作成)
$ vi myApp-1.c

main(){ while(1) {}; }

(▼myApp-1.cをコンパイルして実行プログラム myApp-1 を作成)
$ make myApp-1

(▼myApp-1を実行。無限ループで終了しない)
$ ./myApp-1

killコマンド(試験での重要度:★★★)

killコマンドは、指定したシグナルを指定したプロセスに送信します。killコマンドの基本構文は次のとおりです。

kill [-s]  [シグナル名 | シグナル番号] プロセスID
kill [-s]  [シグナル名 | シグナル番号] %ジョブID
kill -l
killコマンドの主なオプション
オプション 説明
-s 送信するシグナルを指定。省略可能
-l シグナル名の一覧を表示

実行例1:シグナル一覧の表示

$ kill -l
 1) SIGHUP   2) SIGINT   3) SIGQUIT  4) SIGILL   5) SIGTRAP
 6) SIGABRT  7) SIGBUS   8) SIGFPE   9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
...(以下省略)...

実行例2:デフォルトハンドラが設定されたプロセスmyApp-1にSIGHUPシグナルを送信する(①~④は実行および表示の順番)

受信側 送信側
$ ./myApp-1 –①
Hangup –④
 
$ pgrep myApp-1 –②
20082
$ kill -SIGHUP 20082 –③

実行例3:デフォルトハンドラが設定されたジョブ番号1のプロセスmyApp-1にSIGTERMシグナルを送信する

$ ./myApp-1 &
[1] 20889
$ kill %1
[1]+ Terminated ./myApp-1

実行例4:プロセスmyApp-1にSIGKILLシグナルを送信する(①~④は実行および表示の順番)

受信側 送信側
$ ./myApp-1  --➀
Killed  --④
 
$ pgrep myApp-1  --②
20082
$ kill -9 20082  --③

killallコマンド(試験での重要度:★★★)

killallコマンドは指定した名前のすべてのプロセスにシグナルを送信します。killallコマンドの基本構文は次のとおりです。

killall [-s]  [シグナル名 | シグナル番号] プロセス名

実行例5:プロセスmyApp-1にSIGHUPシグナルを送信する

$ killall -s HUP myApp-1

pkillコマンド(試験での重要度:★★)

pkillコマンドは、killallコマンドと同じく指定した名前のすべてのプロセスにシグナルを送信します。ただし、killallコマンドとは構文が若干異なります。pkillコマンドの基本構文は次のとおりです。

pkill [--signal]  [シグナル名 | シグナル番号] プロセス名

実行例6:プロセスmyApp-1にSIGINT(シグナル番号2)を送信する

$ pkill -2 myApp-1

次のページ
独自のシグナルハンドラが登録されたプロセスにシグナルを送信する

この記事は参考になりましたか?

  • Facebook
  • X
  • Pocket
  • note
  • hatena
ドラゴン大竹のLPICレベル1 弱点克服クラス(Ver 4対応)連載記事一覧

もっと読む

この記事の著者

大竹 龍史(有限会社ナレッジデザイン)(オオタケ リュウシ)

有限会社ナレッジデザイン 代表取締役。1986年 伊藤忠データシステム(現・伊藤忠テクノソリューションズ(株))入社後、Sun Microsystems社のSunUNIX 3.x、SunOS 4.x、Solaris 2.xを皮切りにOSを中心としたサポートと社内トレーニングを担当。1998年 (有)ナレッジデザイン設立。Linux、Solarisの講師および、LPI対応コースの開発/実施。約27年にわたり、OS の中核部分のコンポーネントを中心に、UNIX/Solaris、Linuxなどオペレーティングシステ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事をシェア

  • Facebook
  • X
  • Pocket
  • note
  • hatena
HRzine
https://hrzine.jp/article/detail/51 2016/10/04 12:17

Special Contents

AD

Job Board

AD

おすすめ

アクセスランキング

アクセスランキング

イベント

HRzine Day(エイチアールジン・デイ)は、人が活き会社が成長する人事のWebマガジン「HRzine」が主催するイベントです。毎回、人事の重要課題を1つテーマに設定し、識者やエキスパードが持つ知見・経験を、参加者のみなさんと共有しています。

2024年12月6日(金)13:00~15:30

イベントカレンダーを見る

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング