シグナルはコマンドを使っても送れます。コマンド名はkillです。
$ kill [オプション] シグナル プロセスID
オプション
-s
シグナルを指定する
シグナル
シグナルは上記のものなどを使います。
例
プロセスID1234を終了させる。
$ kill -s TERM 1234
リンク
リンクとはコマンドでいうエイリアスのようなものです。リンクを作成するにはこのコマンドを使います。
ln [オプション] リンク元 リンクの置き場所
オプション
-s
シンボリックリンクを作成する
例
カレントディレクトリのhogeというファイルにbarというシンボリックリンクを作成する
$ ln -s hoge bar
確認してみましょう。確認にはlsコマンドに-lオプションをつけて実行します。
$ ls -l
-rw-rw-r-- 3 foo foo 50 5月 1 21:21 hoge
lrwxrwxrwx 1 foo foo 4 6月 19 10:52 bar -> hoge
第二回のアクセス権の項で説明したファイルタイプの場所にlというのが表示されています。これはシンボリックリンクのファイルタイプを表すものです。また﹁-> hoge﹂というのはこのファイルはhogeというファイルへのリンクであることを示します。
シンボリックリンクと通常のリンクの違い
lnコマンドでオプションをつけずに作成されたリンクはハードリンクと呼ばれ、コピーと違いリンク元と変更などすべて同じファイルとして扱います。そのため、ファイルの情報を集めて作成されたiノードという番号は同じものを使用されます。シンボリックリンクというのは、第3回で説明しました、エイリアスのようにファイルやディレクトリに対して別名をつけるようなイメージでリンクを作成してもどのファイルへのリンクが明示されるだけで、実際このファイルそのものは内容を持ちません。ただ、ディレクトリにシンボリックリンクを作成するとあたかもシンボリックリンクの中に元でファイルやディレクトリが存在しているように見えるためシンボリックリンクはWindowsでいうショートカットのようなものとして理解できると思います。
例えば/etc/rc.d/init.d/というディレクトリにシンボリックリンクを作成して様子を見てみましょう。
シンボリックリンク元である/etc/rc.d/init.d/ディレクトリの内容です。
$ ls /etc/rc.d/init.d
FreeWnn crond httpd messagebus pcmcia sendmail
NetworkManager cups iiim microcode_ctl portmap single
acpid cups-config-daemon ipmi netdump psacct smartd
anacron diskdump iptables netfs rawdevices sshd
apmd dund irda netplugd readahead syslog
atd firstboot irqbalance network readahead_early vncserver
auditd functions isdn nfs rhnsd winbind
autofs gpm killall nfslock rpcgssd xfs
bluetooth haldaemon kudzu nscd rpcidmapd xinetd
canna halt mdmonitor ntpd rpcsvcgssd ypbind
cpuspeed hidd mdmpd pand saslauthd yum
ファイルサイズは、
$ ls -l /etc/rc.d/
drwxr-xr-x 2 root root 4096 6月 16 05:43 init.d
からわかるように4096となっています。
$ ln -s /etc/rc.d/init.d/ init
/etc/rc.d/init.dディレクトリに対してシンボリックリンクinitを作成しました。
$ cd init
シンボリックリンクinitに移動しました。
$ ls
FreeWnn crond httpd messagebus pcmcia sendmail
NetworkManager cups iiim microcode_ctl portmap single
acpid cups-config-daemon ipmi netdump psacct smartd
anacron diskdump iptables netfs rawdevices sshd
apmd dund irda netplugd readahead syslog
atd firstboot irqbalance network readahead_early vncserver
auditd functions isdn nfs rhnsd winbind
autofs gpm killall nfslock rpcgssd xfs
bluetooth haldaemon kudzu nscd rpcidmapd xinetd
canna halt mdmonitor ntpd rpcsvcgssd ypbind
cpuspeed hidd mdmpd pand saslauthd yum
内容が/etc/rc.d/init.d/ディレクトリとまったく同じです。
$ pwd
/home/foo/init
しかし、現在地は/etc/rc.d/init.d/ではありませんし、このinitのファイルサイズは
$ ls -l
lrwxrwxrwx 1 foo foo 17 6月 21 00:36 init -> /etc/rc.d/init.d/
からわかるように17しかありません。
ランレベル
Linuxには起動のレベルがあり、0~6までのレベルがあります。これをランレベルといい、起動時にどのレベルで動作させるかは/etc/inittabで設定されています。このファイルで注目すべきは以下のところです。
# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault:
これはそれぞれのランレベルの簡単な説明と最後のid:5:initdefault:はランレベル5で起動するという意味になります。
主に使われるランレベルは1,3,5のいずれかでそれぞれの用途は下記になります。ただしこれはCentOS、FedoraCoreをはじめとするRedHat系のディストリビューションでの話で、他のディストリビューションでは異なる事もあります。