
Eu tenho um script bash no Fedora Linux, que executo como usuário root, que inicia outro script como usuário 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.
Conteúdo delong.sh
#!/bin/sh
sleep 300
Agora, o que acontece se você fizer um 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
Como posso me livrar do processo 67, o su rpmbuild
, para que apenas o rpmbuild
processo permaneça?
Ou preciso de outra ferramenta?
Seria bom se estes su
(muitos deles na lista de processos) desaparecessem.
Responder1
Você pode executar sudo (ou su - ) pkill 67 e/ou usar sudo su - $(username) para executá-lo, o que deve negar e diminuir automaticamente as permissões do(s) script(s), no entanto, enquanto esse script ou qualquer filho estiver executá-lo IRÁ mostrar menos de um --nohup iirc.