1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

linux killallコマンドを実行時にcommand not foundと出力された

Last updated at Posted at 2022-12-31

はじめに

linuC 101の勉強の際にkillallコマンドの動作確認をしたところ、
コマンドがありませんと表示されたため、対応した内容を記事にまとめました。

前提条件

OS CentOS7

対応手順

スクリプトを実行した

スクリプト実行しました。

# cat /tmp/test.sh
#!/bin/bash

sleep 100

バックグランドでスクリプトを実行しました

# /tmp/test.sh &

自分が現在起動しているプロセスを表示した

先程実行したスクリプト「test.sh」っとスクリプト内部のsleepのプロセスが実行中であることを確認した

# ps
  PID TTY          TIME CMD
 1251 pts/0    00:00:00 bash
 1399 pts/0    00:00:00 test.sh
 1400 pts/0    00:00:00 sleep
 1403 pts/0    00:00:00 ps

test.shのプロセスを終了してみた

killについては、以下のサイトが参考になりました。
https://atmarkit.itmedia.co.jp/ait/articles/1604/05/news022.html#sample2

コマンドがありませんというメッセージが出力されました。

# killall -s 15 test.sh
-bash: killall: command not found

whichコマンドで確認

実行されるコマンドの実行ファイルをフルパスで表示しました。
環境変数PATHに含まれているディレクトリに、killallが存在しないことを確認しました。

以下のサイトを参考にしました。
https://atmarkit.itmedia.co.jp/ait/articles/1703/16/news020.html

QiitaではBashでコマンドの存在チェックの記事が大変参考になりました。
https://qiita.com/kawaz/items/1b61ee2dd4d1acc7cc94

# which killall
/usr/bin/which: no killall in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)

コマンドが存在する例
# which kill
/usr/bin/kill

typeコマンドで確認
typeコマンドは、指定したコマンドがbashでどのように解釈されるかを調べるコマンドです。

以下のサイトの説明から引用しました。
https://atmarkit.itmedia.co.jp/ait/articles/1703/16/news020.html

killallはnot foundとなり、コマンドが存在しないことが分かりました。

※rootユーザーはbashが起動していることを確認した。
[root@localhost ~]# cat /etc/passwd | grep root
root:x:0:0:root:/root:/bin/bash

# type killall
-bash: type: killall: not found

※killはbashの組み込みコマンドである
# type kill
kill is a shell builtin

killallのコマンド自体がない事が分かったため、おそらくパッケージのインストールが必要と考えました。
以下のサイトを参考して「psmisc」パッケージをインストールしました。
https://bbs.archlinux.org/viewtopic.php?id=55779

# yum install psmisc
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.aktkn.sg
 * extras: download.nus.edu.sg
 * updates: download.nus.edu.sg
Resolving Dependencies
--> Running transaction check
---> Package psmisc.x86_64 0:22.20-17.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==================================================================================================================================================== Package                           Arch                              Version                                  Repository                       Size
====================================================================================================================================================Installing:
 psmisc                            x86_64                            22.20-17.el7                             base                            141 k

Transaction Summary
====================================================================================================================================================Install  1 Package

Total download size: 141 k
Installed size: 475 k
Is this ok [y/d/N]: y
Downloading packages:
psmisc-22.20-17.el7.x86_64.rpm                                                                                              | 141 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : psmisc-22.20-17.el7.x86_64                                                                                                      1/1
  Verifying  : psmisc-22.20-17.el7.x86_64                                                                                                      1/1

Installed:
  psmisc.x86_64 0:22.20-17.el7

Complete!

test.shのプロセスを再度終了してみた

test.shスクリプトのプロセスは終了しました。

# killall -s 15 test.sh
[1]+  Terminated              /tmp/test.sh
# killall -s 15 sleep

自分の実行したプロセスを確認した

sleepプロセスとtest.shプロセスが消えていることを確認した

# ps
  PID TTY          TIME CMD
 1251 pts/0    00:00:00 bash
 1416 pts/0    00:00:00 ps

まとめ

linuCの勉強ですが、実機でコマンドの動作確認をすると、
うまくいかないことがあるため、大変勉強になります。
コマンドを暗記するだけでなく、手を動かすことでトラブルシューティングを学ぶことが出来ます。
また、killallコマンドが見つかりませんというメッセージについての対応方法ですが、
ネット上にあまり情報がなかったため、Qiitaにまとめました。
誰かのお役に立てたら幸いです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?