LPIC 7日目

プロセスとジョブ

実行中のプログラムをプロセスといいます。
このプロセスの情報を表示することができます。

$ ps [オプション]

オプションは大したことないので、自分で調べましょう。

$ ps
 PID TTY TIME CMD
28673 pts/0 00:00:00 bash
28994 pts/0 00:00:00 ps
$

bashとpsコマンド(そのもの)がプロセスとしてあるよ、という意味です。

項目 説明
PID プロセスID
TTY プロセスを実行した端末名
TIME プロセスの実行時間
CMD 実行コマンド

プロセスの終了

プログラムの実行が終わるとプロセスは消滅するのですが、中にはそもそも終了のないプログラムもありますし、不具合でフリーズしてしまったりプロセスが残ってしまうケースがあります。
そのような場合は、プロセスに停止などの信号を送って終了させることになります。このプロセスに送る信号の事をシグナルといいます。シグナルには主に以下の4つがあります。

 

シグナルID シグナル名 動作
9 KILL 強制終了
15 TERM 終了(デフォルト)
18 CONT 再開
19 STOP 一時停止

シグナルを送信するにはkillコマンドを使います。

$ kill [シグナルID] プロセスID
$ kill -s [シグナル名] プロセスID

プロセスIDがわからないので、killをやるまえには必ずpsコマンドを叩くことになりますよね。でもって、探すのが面倒なので、パイプでgrepする、と。
わからない人は5日目に戻りましょう。

killについては、例を見たほうがしっくりくると思います。

$ kill 28000
$ kill -15 28000
$ kill -s TERM 28000

上記は全て同じ意味です。28000番のプロセスを終了させる。
上から。デフォルトでTERM、シグナルID指定、シグナル名指定、です。

ジョブ

処理の単位のことです。pwdでもlsでも実行すればそれはジョブです。
もちろん、自分で作ったプログラムでもそれは同じです。
ここまでにやってきたものだとしっくりこないかもしれませんが、非常に時間のかかるツール等を実行すると終わるのに数分かかるなんてのはざらにあります。

$ testtest

こんな感じになるのです。testtestを実行したら、プロンプトが戻ってこない。
これを避けるためにこのコマンドをバックグラウンドで処理することができます。その際は、コマンドの最後に&を付けます。

$ testtest &
[1] 28999
$

[1] 28999 は、ジョブIDとプロセスIDです。
で、プロンプトが返ってきて、次のコマンドが入力可能になっています。

ネットワーク利用

ここからはネットワークの基礎知識が必要なので、CCNA基礎をある程度学んでから読んで下さい。ここでは割愛します。

telnet【テルネット】

ネットワーク経由で別コンピューターにログインするためのコマンドです。

$ telnet ホスト名 or IPアドレス

この後、ユーザ名/パスワードを聞かれるので、それを入力してログイン完了です。

telnetは暗号化されていませんが、SSHは安全にリモート接続できることになります。その際は、sshコマンドを使います。

$ ssh ユーザー名@ホスト名 or IPアドレス

 

ping【ピング|ピン】

指定したホストにICMPパケットを送信します。もしホストが動作していれば反応があるので、導通確認に使われます。

$ ping ホスト名 or IPアドレス