다른 사용자로 다른 스크립트를 시작하는 스크립트, su 프로세스를 제거하는 방법은 무엇입니까?

다른 사용자로 다른 스크립트를 시작하는 스크립트, su 프로세스를 제거하는 방법은 무엇입니까?

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가 부족하게 표시됩니다.

관련 정보