バックグラウンドで動作しているプロセスを kill する

経緯

通信確認するために ping をバックグラウンドで飛ばそうとしたのですが、一瞬どう止めようかと思ったのでメモしておきます。

#!/bin/bash

ping 8.8.8.8 2>&1 | xargs -I_ date +'%c _' | tee /PATH/TO/DIRECTORY/result.log

こんなシェルスクリプトを雑に用意します。

# mkdir /PATH/TO/DIRECTORY/
# vi /PATH/TO/DIRECTORY/type124-asdic.sh


#!/bin/bash

ping 8.8.8.8 2>&1 | xargs -I_ date +'%c _' | tee /PATH/TO/DIRECTORY/result.log


# chmod 666 /PATH/TO/DIRECTORY/
# chmod 700 /PATH/TO/DIRECTORY/type124-asdic.sh
# ls -al /PATH/TO/DIRECTORY/type124-asdic.sh
-rwx------ 1 ADIMN ADIMN 73 mm月 dd hh:ii yyyy /PATH/TO/DIRECTORY/type124-asdic.sh

まずはシェルスクリプトを配置して権限付与。

# vi /etc/crontab

ii hh dd mm * ADMIN /PATH/TO/DIRECTORY/type124-asdic.sh &

cron に設定します。これで該当日時にシェルスクリプトが動いたことを確認しました。

……さて、これをどう止めるか。

対処

対処としては、 ps aux で全てのプロセスを表示させます。

# ps axu
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

## 略

root     18659  0.0  0.0 103256   740 ?        S    hh:ii   0:00 ping 8.8.8.8
root     18660  0.0  0.0 101360   664 ?        S    hh:ii   0:00 xargs -I_ date
root     18661  0.0  0.0 100920   624 ?        S    hh:ii   0:00 tee /PATH/TO/DIRECTORY/result.log
root     21625  1.0  0.0 110244  1124 pts/0    R+   hh:ii   0:00 ps axu

大量に表示されますが、その中から該当プロセスを見付け出します。今回の大本は ping なので、 18659 ですね。

# kill -9 18659

これでOK。

参考

kill

ping

この記事を書いた人

アルム=バンド

フロントエンド・バックエンド・サーバエンジニア。LAMPやNodeからWP、Gulpを使ってejs,Scss,JSのコーディングまで一通り。たまにRasPiで遊んだり、趣味で開発したり。