
Fedora Linux에 bash 스크립트가 있습니다. 이 스크립트는 루트 사용자로 실행하고, 권한이 낮은 사용자로 다른 스크립트를 시작합니다 rpmbuild
.
#!/bin/sh
# start as another user, fork
su rpmbuild -c ./long.sh &
# disown the job
disown
# run some other long running things.
의 내용long.sh
#!/bin/sh
sleep 300
이제 다음을 수행하면 어떻게 되나요 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
su rpmbuild
프로세스 67인 을 제거 하여 프로세스만 남게 하려면 어떻게 해야 합니까 rpmbuild
?
아니면 다른 도구가 필요한가요?
su
이러한 것 (프로세스 목록에 있는 많은 것)이 사라지면 좋을 것입니다 .
답변1
sudo (또는 su - ) pkill 67 및/또는 sudo su - $(username) 을 사용하여 스크립트의 권한을 자동으로 해제하고 에스컬레이션을 취소할 수 있습니다. 그러나 해당 스크립트 또는 하위 항목이 있는 동안 실행하면 --nohup iirc가 부족하게 표시됩니다.