
Tengo un script bash en Fedora Linux, que ejecuto como usuario root, que inicia otro script como usuario menos privilegiado rpmbuild
.
#!/bin/sh
# start as another user, fork
su rpmbuild -c ./long.sh &
# disown the job
disown
# run some other long running things.
Contenido delong.sh
#!/bin/sh
sleep 300
Ahora, ¿qué pasa si haces un ps aux
:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 67 0.0 0.0 81884 4080 ? S 12:42 0:00 su rpmbuild -c ./long.sh
rpmbuild 68 0.0 0.0 9512 2340 ? Ss 12:42 0:00 /bin/sh ./long.sh
rpmbuild 69 0.0 0.0 4316 628 ? S 12:42 0:00 sleep 300
¿Cómo puedo deshacerme del proceso 67 su rpmbuild
, para que solo rpmbuild
quede el proceso?
¿O necesito otra herramienta?
Sería bueno que estos su
(muchos de ellos en la lista de procesos) desaparecieran.
Respuesta1
Puede ejecutar sudo (o su - ) pkill 67 y/o usar sudo su - $(username) para ejecutarlo, lo que automáticamente debería rechazar y reducir los permisos de los scripts, sin embargo, mientras ese script o cualquier hijo estén ejecutarlo mostrará algo menos que --nohup iirc.