2022年8月、ホームページを全面リニューアルしました! 情報を分かりやすくお伝えできるサイト作りを目指してまいります。

PIDを使わずにプロセスを停止させる!

従来より、通常俺たちはプロセスを個別に停止する場合は、停止させたいPIDをゲットしてkillコマンドを発行して停止させる。


1.まず、PIDを使って停止させるって

例えば、

[root@yh /root]# ps axw | grep inetd
508 ? S 0:00 inetd
29040 pts/0 S 0:00 grep inetd

[root@yh /root]# kill -9 508

みたいな感じに。しかし、これではちとめんどくさい。そこで、LinuxとFreeBSDにはPIDを使わずにプロセス名のみで目的のプロセスを停止できる便利なコマンドがあるので紹介したい。特に緊急停止したい場合には効果的だ。


2.Linuxの場合は

Linuxでは、killallというコマンドがある。このコマンドはLinuxではデフォルトでインストされているはずである。そこで、例としてinetdを停止させるには、

[root@yh /root]# killall inetd

PSコマンドで確認すれば停止されているはずである。


3.FreeBSDの場合は

FreeBSDの場合には、skillというコマンドがある。このコマンドはデフォルトでは多分インストされないと思うので、無ければportsからインストして欲しい。

bash-2.05b# cd /usr/ports/sysutils/skill
bash-2.05b# make install clean

例えば、inetdのプロセスを停止したい場合は、

bash-2.05b# skill inetd

PSコマンドで確認すれば停止されているはずである。

注:FreeBSDの場合、killallコマンドも用意されているが、Linuxと違って非常に非力で停止出来るモジュールが限定されるのでskillを使った方が良いと俺は考える。そもそも、このkillallはOSによって実行内容が異なるので注意が必要みたいである。

以上

コメント