PID eines Prozesses in bash ermitteln (CentOS)
Hallo,
unter Ubuntu funktioniert folgender Code in einem frisch installierten OS:
Dabei soll tcpdump als root aufgerufen werden und nach 4 Sekunden beendet werden. Des weiteren werden noch Zugriffsrechte für einen Benutzer auf die zuvor erstellte PCAP-Datei gesetzt, was hier aber nichts zur Sache tut. Das klappt soweit auch gut.
Jetzt möchte ich es in CentOS umsetzen und da funktioniert ja sudo nicht vom Start weg sondern muss erst für die User gesetzt werden. Deswegen wollte ich es mit
umsetzen, was sudo umgeht und trotzdem root-Rechte verleiht.
Also:
Leider wird mir hierbei die PID nicht ermittelt und kill wirft einen Fehler. Kann mir jemand beim Berichtigen helfen? Ich denke es liegt an der Schachtelung su -c <-> bash -c
Gruß
unter Ubuntu funktioniert folgender Code in einem frisch installierten OS:
sudo bash -c '/usr/sbin/tcpdump -s0 -wtest.pcap -i1 & _pid=${!};sleep 4;kill $_pid;chmod 777 test.pcap;chown marinux test.pcap;'
Dabei soll tcpdump als root aufgerufen werden und nach 4 Sekunden beendet werden. Des weiteren werden noch Zugriffsrechte für einen Benutzer auf die zuvor erstellte PCAP-Datei gesetzt, was hier aber nichts zur Sache tut. Das klappt soweit auch gut.
Jetzt möchte ich es in CentOS umsetzen und da funktioniert ja sudo nicht vom Start weg sondern muss erst für die User gesetzt werden. Deswegen wollte ich es mit
su -c
Also:
su -c "bash -c '/usr/sbin/tcpdump -s0 -wtest.pcap -i1 & _pid=${!};sleep 4;kill $_pid;chmod 777 test.pcap;chown marinux test.pcap;'"
Leider wird mir hierbei die PID nicht ermittelt und kill wirft einen Fehler. Kann mir jemand beim Berichtigen helfen? Ich denke es liegt an der Schachtelung su -c <-> bash -c
Gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 189287
Url: https://administrator.de/contentid/189287
Ausgedruckt am: 22.11.2024 um 05:11 Uhr