O comando / bin / prefix to kill está se livrando da mensagem de erro

0

Eu tenho o Debian Stretch ..

Eu pensei que um usuário comum poderia matar o processo raiz como root. Eu estava usando o comando /bin/kill 10733 como o usuário. Não houve nenhuma mensagem de erro. Em seguida, digitei o comando similar (sem /bin/ prefix) e a mensagem de erro foi exibida.

Aqui está o histórico de comandos

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$ 

Na verdade, prefiro o prefixo e a mensagem. Como conseguir isso? E porque é assim?

    
por trzczy 20.09.2018 / 02:24

1 resposta

4

No seu exemplo, o comando kill é um shell interno (definitivamente em bash ) e permite que extensões como %1 sejam usadas para se referir a processos em segundo plano.

Por outro lado, /bin/kill é um comando externo e não possui essas extensões. Como é um programa diferente, ele age de maneira diferente. Um /bin/kill com falha pode ser silencioso, mas define $? (código de saída) para indicar uma falha.

Quando você executa sudo kill , está executando implicitamente sudo /bin/kill .

    
por 20.09.2018 / 03:41