Achtergrond processen
Hoe kun je achtergrond processen beheren.
Inzicht en stoppen
Gebruik de volgende commando's als je wilt weten welke achtergrond processen er lopen en deze wilt stoppen.
ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
someuser 1170 0.0 0.0 151232 1992 ? Sl 2019 50:29 /usr/bin/redis-server 127.0.0.1:0
someuser 1172 0.0 0.0 151232 1988 ? Sl 2019 50:22 /usr/bin/redis-server 127.0.0.1:0
someuser 2000 0.0 0.0 1136972 10256 ? S 2019 0:00 php-fpm: pool php70-someuser-website.com
someuser 2004 0.0 0.0 1136972 10256 ? S 2019 0:00 php-fpm: pool php70-someuser-website.com
someuser 2010 0.0 0.0 1136972 10248 ? S 2019 0:00 php-fpm: pool php70-someuser-website.com
someuser 2013 0.0 0.0 1136972 10252 ? S 2019 0:00 php-fpm: pool php70-someuser-website.com
someuser 2017 0.0 0.0 1136972 10252 ? S 2019 0:00 php-fpm: pool php70-someuser-website.com
someuser 2021 0.0 0.0 1136972 10252 ? S 2019 0:00 php-fpm: pool php70-someuser-website.com
someuser 2030 0.0 0.0 1136972 10248 ? S 2019 0:00 php-fpm: pool php70-someuser-website.com
someuser 2033 0.0 0.0 1136972 10248 ? S 2019 0:00 php-fpm: pool php70-someuser-website.com
someuser 2038 0.0 0.0 1136972 10244 ? S 2019 0:00 php-fpm: pool php70-someuser-website.com
someuser 2039 0.0 0.0 1136972 10244 ? S 2019 0:00 php-fpm: pool php70-someuser-website.com
someuser 2043 0.0 0.0 1136972 10240 ? S 2019 0:00 php-fpm: pool php70-someuser-website.com
someuser 2049 0.0 0.0 1136972 10240 ? S 2019 0:00 php-fpm: pool php70-someuser-website.com
someuser 2052 0.0 0.0 1136972 10240 ? S 2019 0:00 php-fpm: pool php70-someuser-website.com
someuser 2057 0.0 0.0 1136972 10240 ? S 2019 0:00 php-fpm: pool php70-someuser-website.com
someuser 2063 0.0 0.0 1136972 10240 ? S 2019 0:00 php-fpm: pool php70-someuser-website.com
someuser 2066 0.0 0.0 1136972 10240 ? S 2019 0:00 php-fpm: pool php70-someuser-website.com
someuser 104977 0.0 0.0 780800 64508 ? Sl 03:00 0:00 /usr/bin/hhvm -m server -c /etc/hhvm.d/someuser-website.com.ini
someuser 128392 0.0 0.0 116588 3460 pts/0 Ss+ 19:09 0:00 -bash
someuser 131513 0.0 0.0 217640 12924 ? Ss Jan31 1:57 /usr/bin/python /usr/bin/supervisord -n -c /etc/supervisor/someuser.conf
someuser 131547 0.5 0.1 368324 160500 ? Sl Jan31 55:26 /usr/bin/redis-server 127.0.0.1:6385
someuser 131548 138 1.0 11902864 1443848 ? Sl Jan31 13629:09 /usr/bin/java -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+DisableExplicitGC -Djava.awt.headless=true -Dfile.encoding=UTF-8 -XX:
someuser 133746 0.0 0.0 116456 2960 pts/1 Ss+ 19:36 0:00 -bash
someuser 147910 3.0 0.0 116456 3192 pts/2 Ss 20:14 0:00 -bash
someuser 147959 0.0 0.0 151156 1828 pts/2 R+ 20:14 0:00 ps aux
We zien hier dat het proces met pid 131548
al erg lang loopt en ook nog eens veel CPU gebruikt.
Dit proces kunnen we afbreken met het volgende commando:
kill 131548
Als een proces echt hardnekkig is en ook niet meer reageert op een SIGTERM kun je ook een SIGKILL sturen. Dit zorgt ervoor dat een proces vanuit het OS geforceerd gestopt wordt. Hierdoor krijgt het proces ook niet meer de mogelijkheid zichzelf netjes op te ruimen en kan het dus voorkomen dat er nog child processen of andere achterblijfsels aanwezig zullen blijven.
kill -9 131548
Lees https://linuxhandbook.com/sigterm-vs-sigkill/ voor meer uitleg over de verschillen tussen SIGTERM en SIGKILL.
Als je alle processen van een bepaald type in 1 keer wilt stoppen kun je killall
gebruiken. Om PHP te resetten kun je
het volgende commando uitvoeren:
killall php-fpm
screen
Als je een achtergrond proces wilt starten welke nog door moet gaan kun je screen
gebruiken.
Bijvoorbeeld:
screen sleep 100
Dit scherm kun je verlaten met de toetsencombinatie CTRL+A, CTRL+D. Om weer terug te keren gebruik je screen -r
.