プロセスとジョブ
実行中のプログラムをプロセスといいます。
このプロセスの情報を表示することができます。
$ 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アドレス