
Ich habe ein Bash-Skript unter Fedora Linux, das ich als Root-Benutzer ausführe und das ein anderes Skript als Benutzer mit weniger Berechtigungen startet rpmbuild
.
#!/bin/sh
# start as another user, fork
su rpmbuild -c ./long.sh &
# disown the job
disown
# run some other long running things.
Inhalt vonlong.sh
#!/bin/sh
sleep 300
Was passiert nun, wenn Sie Folgendes tun 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
Wie kann ich den Prozess 67 loswerden su rpmbuild
, so dass nur noch der rpmbuild
Prozess übrig bleibt?
Oder brauche ich ein anderes Werkzeug?
Es wäre schön, wenn diese su
(viele davon in der Prozessliste) verschwinden würden.
Antwort1
Sie können „sudo“ (oder „su -“) pkill 67 ausführen und/oder „sudo su - $(Benutzername)“ verwenden, um es auszuführen. Dadurch sollten die Berechtigungen des/der Skripts/Skripte automatisch abgelehnt und zurückgesetzt werden. Während das Skript oder untergeordnete Skripts ausgeführt werden, wird jedoch, wenn ich mich recht entsinne, „--nohup“ angezeigt.