Debian ストレッチがあります。
一般ユーザーは、ルートプロセスをルートに殺すことができると思います。私は/bin/kill 10733
このコマンドをユーザーとして使用します。エラーメッセージはありません。その後、/bin/
プレフィックスなしで同様のコマンドを入力すると、エラーメッセージが表示されます。
コマンド履歴です
deployer@deployer:~/blog$ kill 10733
-bash: kill: (10733) - Operation not permitted
deployer@deployer:~/blog$ /bin/kill 10733
deployer@deployer:~/blog$ ps aux|grep 10733
root 10733 0.0 0.6 92360 6404 ? Ss 19:19 0:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
deployer 10891 0.0 0.2 12732 2236 pts/0 S+ 20:10 0:00 grep 10733
deployer@deployer:~/blog$ sudo kill 10733
deployer@deployer:~/blog$ ps aux|grep 10733
deployer 10900 0.0 0.2 12732 2232 pts/0 S+ 20:10 0:00 grep 10733
deployer@deployer:~/blog$
実際、私はプレフィックスとメッセージを好みます。得る方法か。なぜですか?
答え1
あなたの例では、kill
コマンドはシェル内部コマンド(確かに)であり、バックグラウンドプロセスを参照するbash
などの拡張を許可します。%1
一方、/bin/kill
外部コマンドなので、これらの拡張子はありません。他のプログラムなので違うように動作します。失敗は/bin/kill
自動的に表示できますが、$?
失敗を示すように(終了コード)設定されます。
実行するとsudo kill
暗黙的に実行されますsudo /bin/kill
。