LinuCレベル1 Version 4.0 101試験の例題と解説
103.5 プロセスの生成、監視、終了
■例題
コマンドの末尾に「&」をつけた場合の説明として正しいものを選びなさい。
1. 優先順位を最低にしてコマンドを実行する
2. バックグラウンドでコマンドを実行する
3. ログアウト後もコマンドを実行し続ける
4. コマンドの実行に成功した場合のみ、次のコマンドを実行する
※この例題は実際の試験問題とは異なります。
解答と解説
答えは「2. バックグラウンドでコマンドを実行する」です。
バックグラウンドでコマンドを実行することで、あるコマンドが実行されている間も同じシェルで作業を行うことが出来ます。
優先順位を変更して実行するコマンドは「nice」コマンドです。nice値は19が優先度最低、-20が優先度最高となります。nice値の変更に関して、一般ユーザでもniceコマンドは実行できますが、優先度を下げることしか出来ません。rootユーザであれば、nice値の上げ下げの両方を指定することができます。
ログアウト後もコマンドを実行し続けるためには、nohupコマンドを使用します。nohupコマンドを使用することで、HUPシグナルを無視してコマンドを実行することができます。
コマンドをバックグラウンドで実行している場合でも、ログアウトを行うと、そのログインシェル(親プロセス)の終了時に子プロセス(コマンド)にHUPシグナルが送られ、コマンドが終了してしまいます。
nohup コマンド &
というように指定することで、ログアウト後もバックグラウンドでプログラムを実行し続けることができます。なお、シェルによっては、nohupをつけなくてもバックグラウンドでプログラムを実行し続ける動作をすることがあります。
「&&」をつけた場合、「4. コマンドの実行に成功した場合のみ、次のコマンドを実行する」の動作になります。
コマンド1 && コマンド2
というようにコマンドを実行すると、コマンド1が成功した場合のみコマンド2を実行します。
◆例題作成者
株式会社デージーネット システム設計部 森 彰吾 氏 株式会社デージーネット ソリューション開発部 丸吉祐也 氏