2013-07-05 6 views
1

avec un compte utilisateur non privilégié, en utilisant bash, je pouvais faire:comment mettre fin à un processus qui est exécuté avec sudo avec kill

sudo /bin/sleep 6000 

et tuez-le avec Ctrl-c. Cependant, envoyer SIGINT ou SIGKILL à partir d'un autre terminal ne fonctionnera pas dans ce but.

Quelqu'un sait pourquoi? Je voudrais pouvoir tuer le processus en envoyant un signal, pour l'utiliser dans un script, par exemple.

Cordialement.

+1

Vous * appelez "kill" en tant que super-utilisateur, n'est-ce pas? Sinon, vous n'aurez pas la permission de tuer le processus. –

Répondre

1

Vous êtes uniquement autorisé à envoyer des signaux à un processus exécuté avec le même UID (sauf si le processus d'envoi s'exécute en tant que root). Lorsque vous utilisez sudo, le nouveau processus s'exécute en tant que root, mais si vous tentez de le supprimer, vous utilisez votre ID utilisateur normal. Vous devrez utiliser sudo kill PID pour le tuer.

Les signaux envoyés par les caractères de contrôle terminal sont traités spécialement: ils peuvent être envoyés à n'importe quel processus s'exécutant dans la même session de connexion que le terminal.

Questions connexes