La commande kill permet d'envoyer un signal SIGTERM à un processus en fonction de son pid. Si un arrêt propre ne fonctionne pas et qu'il faut forcer la fermeture d'un programme, il faut alors envoyer un SIGKILL.
Tuer un processus avec kill sur Linux
Pour tuer un processus de manière plus brutal, lorsque la demande d'arrêt ne fonctionne pas, on envoie un signal KILL (9).
Pour afficher les processus d'un utilisateur en particulier, vous pouvez utiliser: top -u utilisateur. Pour tuer/arrêter un processus en cours d'exécution, trouvez le PID du processus que vous souhaitez tuer et appuyez sur k (une autre commande du clavier).
Un processus (process) est un programme en cours d'exécution dans un ordinateur. C'est une entité active avec son propre compteur ordinal (instruction pointer) et l'ensemble des ressources qui lui sont associées Ces informations sont stockées, pour chaque processus dans le PCB (process control block).
Sur Linux, la commande PS affiche des informations sur les processus actifs dans le système.
Pour relancer le processus en avant-plan, utilisez la commande fg (qui signifie ``foreground'', avant-plan). Le shell affiche le nom de la commande pour nous rafraîchir la mémoire, et nous indiquer quel est le job que nous venons de rappeler. Stoppez-le encore une fois, avec ctrl-Z.
Pour lancer un processus en arrière-plan, il suffit de rajouter le caractère & à la fin de la commande. Une simple commande sleep poura nous service d'exemple.
La commande top est utilisée pour afficher les processus Linux en cours d'exécution.
Pour cela, appuyez simultanément sur les touches Ctrl + Alt + Suppr de votre clavier.
Cliquez sur le bouton Démarrer puis sur Paramètres. Cliquez sur Confidentialité. Dans la colonne de gauche, cliquez sur Applications en arrière-plan. Désactivez alors les applications qui n'ont pas besoin de fonctionner en arrière-plan.
Ouvrez le Gestionnaire des tâches. Dans l'onglet Processus, sélectionnez le programme dont vous souhaitez forcer la fermeture. Cliquez sur le bouton Fin de tâche en bas à droite de la fenêtre pour forcer la fermeture du programme. Vous pouvez également faire un clic droit sur le programme et sélectionner Fin de tâche.
Au démarrage du système, init est le premier processus exécuté. C'est le processus parent qui initialise les autres processus systèmes. C'est le noyau Linux (kernel) qui exécute le processus init et donc ce dernier n'a pas de processus parent. Le processus initial a toujours un identifiant de processus de 1.
En informatique, sous les systèmes de type UNIX et similaires, zombie (on utilise plutôt l'orthographe anglaise) est un terme désignant un processus qui s'est achevé, mais qui dispose toujours d'un identifiant de processus ( PID ) et reste donc encore visible dans la table des processus.
L'identifiant de processus ou PID (Process IDentifier) est un code unique attribué sur les systèmes Unix ou Windows à tout processus lors de son démarrage. Il permet ainsi d'identifier le processus dans la plupart des commandes s'appliquant sur un processus donné (comme kill).
Arrêter un processus
On utilise la commande kill pour envoyer des signaux aux processus.
Saisissez sudo systemctl restart service dans votre terminal, en remplaçant la partie de la commande correspondant à service par le nom du script gérant ce service, puis pressez la touche Entrée . Pour redémarrer le serveur Apache sous Ubuntu Linux, vous devrez entrer sudo systemctl restart apache2 dans votre terminal.
Par défaut, le message est un signal d'arrêt, demandant la fin du processus. La commande kill encapsule l'appel système kill() , lequel envoie des signaux aux processus ou groupes de processus, référencés par leur identifiant (PID ou PGID).
Tapez ps pour obtenir la liste des PID du ou des processus. Tapez kill, suivi du ou des PID. où nom_commande désigne le nom du processus de commande que vous souhaitez interrompre.
Pour savoir si un service est lancé ou pas, vous utilisez la commande status de ce dernier. Par exemple, avec les droits administrateur, vous saisissez /etc/init. d/postfix status lorsque vous vous interrogez sur l'état de la messagerie Postfix.
La commande systemctl fait partie du démon systemd. Il est couramment utilisé dans les nouvelles distributions de systèmes basés sur Linux pour gérer les services sur un système.
ps [options] — processes
Affiche la liste des processus en cours (par défaut : uniquement ceux de l'utilisateur et du terminal courant). Affiche tous les processus de l'utilisateur (tous terminaux confondus). Affiche tous les processus du système. Donne plus d'information sur les processus affichés.
Un processus est bloqué (3) lorsqu'il est en attente d'une ressource (entrées-sorties...) ou volontairement arrêté et devient éligible lorsqu'il a été réveillé (4). Comme il existe plus d'un processus dans chaque état il est nécessaire d'associer des files d'attente à chaque cause d'arrêt.