Kill est une commande sous linux qui permet d’arrêter les process manuellement en envoyant différents types de signaux. Nous allons voir dans ce guide comment arrêter les process avec kill et quelles sont ces types des signaux.
1 – Afficher les différents types de signaux :
kill peut envoyer différents types de signaux aux processus, vous pouvez les afficher avec la commande ci-dessous :
[root@srv ~]# kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX
Comme vous pouvez le voir chaque signal a un numéro spécifique. parmi les signaux les plus utilisés sont : SIGHUP (1), SIGTERM (15), SIGKILL(9), SIGSTOP(19) et SIGCONT(18) :
-SIGHUP : Permet de recharger la configuration d’un processus
-SIGTERM : Permet d’arrêter gentiment un processus
-SIGKILL : Permet de tuer un processus, on s’en sert en cas de plantage de ce dernier.
-SIGSTOP : Suspendre un processus
-SIGCONT : reprendre un processus suspendu.
2 – Envoyer un signal à un processus :
Vous pouvez envoyer un signal avec différentes façons , soit avec le nom du signal, soit avec le numéro qui lui correspond suivi de l’identifiant du processus (PID) :
[root@srv ~]#kill -SIGHUP PID_NUMBER ou [root@srv ~]#kill -s SIGHUP PID_NUMBER
[root@srv ~]#kill -1 PID_NUMBER
[root@srv ~]#kill -HUP PID_NUMBER ou [root@srv ~]#kill -s HUP PID_NUMBER
Vous pouvez récupérée le PID avec différentes commandes : pidof, pgrep, ps, ou top :
[root@srv ~]# pidof mysqld 15694
[root@http1 ~]# ps -ef root 15269 2 0 juin07 ? 00:00:00 [kworker/u256:1] root 15449 2 0 00:25 ? 00:00:00 [kworker/u257:0] root 15451 2 0 00:25 ? 00:00:00 [hci0] root 15452 2 0 00:25 ? 00:00:00 [hci0] root 15456 2 0 00:25 ? 00:00:00 [kworker/u257:2] root 15487 7024 0 00:36 ? 00:00:00 sshd: root@pts/0 root 15491 7024 0 00:37 ? 00:00:00 sshd: root@notty root 15493 15487 0 00:37 pts/0 00:00:00 -bash root 15517 15491 0 00:37 ? 00:00:00 /usr/libexec/openssh/sftp-server root 15583 2 0 01:09 ? 00:00:00 [kworker/0:0] root 15603 2 0 01:12 ? 00:00:01 [kworker/0:3] postfix 15604 9052 0 01:16 ? 00:00:00 pickup -l -t unix -u root 15605 2 0 01:17 ? 00:00:00 [kworker/0:1] mysql 15694 1 24 01:53 ? 00:00:18 /usr/sbin/mysqld root 15743 15493 0 01:54 pts/0 00:00:00 ps -ef root 15744 15493 0 01:54 pts/0 00:00:00 -bash
[root@srv ~]# top top - 01:56:36 up 1 day, 11:10, 3 users, load average: 0,03, 0,07, 0,06 Tasks: 104 total, 1 running, 103 sleeping, 0 stopped, 0 zombie %Cpu(s): 0,0 us, 0,3 sy, 0,0 ni, 99,7 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st KiB Mem : 963128 total, 85436 free, 464152 used, 413540 buff/cache KiB Swap: 1679356 total, 1674932 free, 4424 used. 281068 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 15694 mysql 20 0 1313984 331860 14688 S 0,3 34,5 0:22.71 mysqld 15745 root 20 0 162012 2244 1560 R 0,3 0,2 0:01.07 top 1 root 20 0 128156 5784 3332 S 0,0 0,6 0:19.45 systemd 2 root 20 0 0 0 0 S 0,0 0,0 0:00.03 kthreadd 3 root 20 0 0 0 0 S 0,0 0,0 0:12.33 ksoftirqd/0 5 root 0 -20 0 0 0 S 0,0 0,0 0:00.00 kworker/0:0H 7 root rt 0 0 0 0 S 0,0 0,0 0:00.00 migration/0 8 root 20 0 0 0 0 S 0,0 0,0 0:00.00 rcu_bh 9 root 20 0 0 0 0 S 0,0 0,0 0:03.78 rcu_sched
3 – Arrêter les processus en background :
Vous pouvez aussi arrêter les process lancé en arrière plan avec la commande kill :
[root@srv ~]# jobs [1]- En cours d'exécution sleep 100 & [2]+ En cours d'exécution sleep 200 &
[root@srv ~]#kill -SIGTERM %1
[root@srv ~]#kill -SIGSTOP %2
[root@srv ~]# kill -SIGTERM %1 [root@srv ~]# kill -SIGTERM %2 [1]- Complété sleep 1000 [root@srv~]# jobs [2]+ Complété sleep 2000
nmap : les 12 commandes que vous devez connaître
Comment vérifier la version d’apache
DNS round robin
Résoudre l’erreur : WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
Fail2Ban : How to protect Linux services