Debian cut auf ps -ef

AMD_Rulez

Lieutenant
Registriert
Feb. 2010
Beiträge
582
Hallo,

ich möchte über ein skript meinen rsync daemon zum stoppen bringen. dazu benötige ich ja die pid um sie mit kill abzuschießen.

ps -ef | grep rsync --daemon | cut -f 2 -d "" >> test

also ich möchte die spalte in der die pid steht rausfiltern und in die datei test speichern.
wenn ich jetzt die datei test öffne wurde aber nichts gefiltert sondern die komplette ps -ef zeile angezeigt also ich sehe das hier.

root 3295 1 0 09:29 ? 00:00:00 rsync --daemon

wie kann ich die pid richtig rausfiltern?
 
Interessant wäre auch zu wissen warum der gerade läuft. Wenn der über init-Scripte gestartet wird sollte man diese zum beenden verwenden und danach die Scripte deaktivieren.
 
Wenn nur ein rsync läuft probiers doch mit "killall rsync" oder "kill `pidof rsync`"
 
Wie xone92 schrieb, solltest du zuerst herausfinden, weshalb der Daemon überhaupt läuft. Per default ist er nämlich ausgeschaltet. Stoppen kann man ihn über sein Initskript: "/etc/init.d/rsync stop". Wenn das nicht funktioniert, verhält sich das System nicht normal.

Dauerhaft Abschalten geht über mehrere Methoden:
1. In "/etc/default/rsync" den Paramter "RSYNC_ENABLE=false" setzen,
2. die dort angegebene Konfigurationsdatei "RSYNC_CONFIG_FILE"" (default: "/etc/rsyncd.conf") umbenennen oder löschen,
3. die Links des Init-Skripts in die jeweiligen Runlevel deaktivieren, damit es beim Systemstart nicht mehr ausgeführt wird: "update-rc.d -f rsync remove". (Dieser Aufruf behält das Init-Skript in "/etc/init.d/". Reaktivieren geht dann mittels des Aufrufs "update-rc.d rsync enable 2 3 4 5".)

@Jusic: Den grep-Aufruf kann man sparen: "ps -ef | awk '/rsync --daemon/ { print $2 }' >> test".
 
der deamon läuft weil ich ihn angestellt habe:D killall rsync kannte ich schon ich hätte es halt gerne so gehabt dass ich mit cut die pid ausschneide und ihnd dann über kill -9 pid abschieße.
der sinn dahinter ist unwichtig mir gehts als anfänger erstmal ums prinzip
 
Fingerübungen sind nie verkehrt. :)

Wenn du den Dienst sauber beenden willst, müsstest du in deinem Skript zwei Bedingungen prüfen. Gib dem Daemon mit "kill pid" (macht: -15, "beende dich und räume hinter dir auf") die Chance, offene Dateien selbst zu schließen und Speicher freizugeben, sich also ordentlich herunterzufahren. Erst wenn das nach einer gewissen Wartezeit ("sleep n" Sekunden) nicht funktioniert hat, sollte man ein "kill -9" hinterherschicken: -9 ist wirklich brutales Abschießen, sozusagen die Pumpgun auf kurze Distanz.
 
Zurück
Oben