
Ejecuto servidores Counter-Strike en sistemas operativos basados en Linux (ubuntu, centos) mediante script web. Necesito encontrar todos los procesos en ejecución del proceso hlds_linux (ha iniciado otros dos con el nombre hlds_run)
El modo seguro está desactivado y trabajo con shell_exec. Necesito encontrar este proceso y conseguir que sus pid puedan matarlos. Gracias por cualquier ayuda y perdón por mi inglés, soy de Bulgaria.
Respuesta1
Pruebe Perl, la motosierra del ejército suizo. Aquí estoy encontrando el PID que mantiene abierto el puerto 80 y luego enumerando todos los elementos secundarios:
[me@lory ~]$ sudo netstat -apn|grep -w 80|grep LISTEN
tcp 0 0 :::80 :::* LISTEN 8308/httpd
[me@lory ~]$ ps -ef|perl -n -e '@j=split / */; print "@j" if ( @j[2]==8308) ; '
apache 9235 8308 0 Dec05 ? 00:01:49 /usr/sbin/httpd
apache 10040 8308 0 Dec08 ? 00:00:41 /usr/sbin/httpd
apache 10477 8308 0 Dec07 ? 00:01:13 /usr/sbin/httpd
apache 10478 8308 0 Dec07 ? 00:01:21 /usr/sbin/httpd
apache 10658 8308 0 Dec08 ? 00:00:29 /usr/sbin/httpd
apache 10662 8308 0 Dec08 ? 00:00:26 /usr/sbin/httpd
apache 10666 8308 0 Dec08 ? 00:00:28 /usr/sbin/httpd
apache 10668 8308 0 Dec08 ? 00:00:35 /usr/sbin/httpd
apache 12694 8308 0 Dec06 ? 00:01:39 /usr/sbin/httpd
apache 12695 8308 0 Dec06 ? 00:01:43 /usr/sbin/httpd
apache 12696 8308 0 Dec06 ? 00:01:39 /usr/sbin/httpd
apache 18671 8308 0 08:41 ? 00:00:18 /usr/sbin/httpd
apache 21585 8308 0 Dec08 ? 00:00:42 /usr/sbin/httpd
apache 22010 8308 0 Dec05 ? 00:01:33 /usr/sbin/httpd
apache 22011 8308 0 Dec05 ? 00:01:49 /usr/sbin/httpd
apache 22012 8308 0 Dec05 ? 00:01:36 /usr/sbin/httpd
Si solo desea los PID:
[me@lory ~]$ ps -ef|perl -n -e '@j=split / */; print "@j[1]\n" if ( @j[2]==8308) ; '
9235
10040
10477
10478
10658
10662
10666
10668
12694
12695
12696
18671
21585
22010
22011
22012
Respuesta2
Puedes usar pkill
(hombre) para eliminar todos los procesos por nombre.
Respuesta3
use ps auxf como dije en mi comentario anterior, puede ver el resultado de la siguiente manera
root 13728 0.0 0.0 187448 6408 ? Ss 16:59 0:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun 13730 0.2 0.2 197868 17272 ? S 16:59 0:03 \_ /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun 13732 0.3 0.2 197116 16548 ? S 16:59 0:04 \_ /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun 13733 0.2 0.2 197888 17292 ? S 16:59 0:03 \_ /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun 13734 1.0 0.2 198936 18204 ? S 16:59 0:15 \_ /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun 13814 1.0 0.2 198164 17532 ? S 16:59 0:14 \_ /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun 14205 0.2 0.2 198288 17668 ? S 17:03 0:02 \_ /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun 14206 0.3 0.2 197892 17292 ? S 17:03 0:04 \_ /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun 14207 0.2 0.2 198980 17984 ? S 17:03 0:02 \_ /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun 14208 0.3 0.2 198188 17584 ? S 17:03 0:04 \_ /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun 17125 0.2 0.2 197828 16872 ? S 17:21 0:00 \_ /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
De esta manera puedes ver qué proceso creó otros procesos.