У меня есть сценарий bash для Fedora Linux, который я запускаю от имени пользователя root, который запускает другой сценарий как менее привилегированный пользователь 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

Как мне избавиться от процесса 67, su rpmbuild , чтобы остался только процесс rpmbuild ?

Или мне нужен другой инструмент?

Было бы хорошо, если бы эти su (многие из них в списке процессов) исчезли.

1 ответ1

0

Вы можете запустить sudo (или su -) pkill 67 и / или использовать sudo su - $ (имя пользователя), чтобы запустить его, что автоматически отключит и де-эскалирует разрешения сценария (ов), однако пока этот сценарий или любые дочерние элементы его запуск покажет --nohup iirc.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .