marinux
Goto Top

PID eines Prozesses in bash ermitteln (CentOS)

Hallo,

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
umsetzen, was sudo umgeht und trotzdem root-Rechte verleiht.

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ß

Content-Key: 189287

Url: https://administrator.de/contentid/189287

Printed on: April 19, 2024 at 10:04 o'clock