$ sudo visudoのコマンド入力できなくなり凄く困ったので解決方法を記載します!
何かの不具合で、.ssh %
の状態もしくは[ec2-user@ip-xx-x-x-xxx] $
から強制終了されるとターミナルでのコマンド入力ができなくなる時があります。
私も、過去に似たような経験をしたことがあり、多分プロセスIDが正常に切られなかったため、ec2-user
にログインした際、$ sudo visudo
が入力できないと予測しました。
発生したエラーは下記です
visudo: /etc/sudoers がビジー状態です。後で再試行してください
この問題を可決するのに凄く時間を費やしたので、プロセスID(PID)の一般的な消去方法とプロセスID(PID)が無限に増殖する際の消去方法について記載したいと思います。
1. 基本のプロセスID(PID)の消去方法!
1. ターミナルでルートディレクトリーに移動する。または、.ssh %
の状態もしくは[ec2-user@ip-xx-x-x-xxx] $
にする。
xxxxxxxxx@xxxxxxxxxxMacBook-xxx ~ % (例です)
2.psを入力する
xxxxxxxxx@xxxxxxxxxxMacBook-xxx ~ % ps
xxxxxxxxx@xxxxxxxxxxMacBook-xxx ~ .ssh % ps
[ec2-user@ip-xx-xx-xx-xxx ~]$ ps
3.PID(プロセスID)が表示されるのを確認する
ps
を入力すると下記の図のような画面が表示されると思います。
4.PID(プロセスID)をkill
orkill -9
で削除する
(私はec2-userの状態でエラーが発生したため、ec2-user状態での記載例を記載します)
[ec2-user@ip-xx-xx-xx-xxx ~]$ kill PIDの数値 or kill -9 PIDの数値
[ 入力例 ~] $ kill *** or kill -9 *** (*** = PID)
kill -9 (PID番号)
で入力すると強制的に終了させる事ができる。
5.PID(プロセスID)が消去できれば、問題なく動作可能
私の場合、この手順ではPID(プロセスID)の消去ができませんでした。実際に起きていた問題は、PID(プロセスID)を消去しても無限に再生される状態でした。
2. PID(プロセスID)の無限増殖の消去方法!
ここからが本題です!
私を苦しめたPID(プロセスID)の無限増殖です。消し方が分かればすごく簡単に直せます!
1. ターミナルでルートディレクトリーに移動する。または、.ssh %
の状態もしくは[ec2-user@ip-xx-x-x-xxx] $
にする。
[ec2-user@ip-xx-xx-xx-xxx ~]$ (例です)
私は、ec2-user内で発生したので、上記の状態で説明を続けます。
2.ps l
を入力する
[ec2-user@ip-xx-xx-xx-xxx ~]$ ps l
3.プロセスごとの実行状態を確認する
下記のような画面が表示されると思います
4.WCHAN
の列にあるwait_w
のPID(プロセスID)をkill
で消去する
詳細画面を載せておきます
[ec2-user@ip-xx-xx-xx-xxx ~]$ kill PIDの数値 or kill -9 PIDの数値
[ 入力例 ~] $ kill *** or kill -9 *** (*** = PID)
5.無限増殖するプロセスID(PID)の消去ができたため、無事に入力可能となる!
参考資料
psのコマンドの種類は下記のps コマンド集
に記載されてます。
もし、ご興味がありましたら見て下さい!
ps コマンド集
最後に
以上で、消せないプロセスID(PID)の消去方法(プロセスID無限増殖)の説明を終わりたいと思います。間違っている点がありましたらご指摘頂けると助かります。
最後までご覧いただき、ありがとうございました。