Linux: 2 praktische Linux Signale: SIGSTOP und SIGCONT

Wie man am Namen schon erraten kann ist SIGSTOP zum stoppen (nicht beenden) von Prozessen und SIGCONT zum fortsetzen eines gestoppten Prozesses.

Besonders praktisch sind diese Signale wenn man laufende Prozesse wie zB Backups unterbrechen aber nicht abbrechen möchte.

Die Signale lassen sich wie folgt an einen Prozess senden:

kill -SIGSTOP [pid]
kill -SIGCONT [pid]

Anstatt dem ausgeschriebenen Signal lässt sich auch einfach deren SignalID benutzen:

kill -19 [pid]
kill -18 [pid]

Einen gestoppten Prozess kann man mit ps an einem 'T' erkennen.
Kurzes Beispiel am cron Daemon Prozess:

# ps aux | grep cron
root 3099 0.0 0.1 3480 1036 ? Ss Jun15 0:00 /usr/sbin/cron
# sudo kill -SIGSTOP 3099
# ps aux | grep cron
root 3099 0.0 0.1 3480 1036 ? Ts Jun15 0:00 /usr/sbin/cron
# sudo kill -SIGCONT 3099
# ps aux | grep cron
root 3099 0.0 0.1 3480 1036 ? Ss Jun15 0:00 /usr/sbin/cron

Das Stoppen von Prozessen beendet diese nicht, es wird nur die aktuelle Ausführung unterbrochen. Es wird also weiterhin RAM beansprucht. Der Prozess schläft dann solange bis man ihn wieder mit SIGCONT aufweckt.

Wer mehr über Signale und deren Funktionen erfahren möchte kann hier weiterlesen:
http://de.wikipedia.org/wiki/Signal_(Computer)
http://de.wikipedia.org/wiki/Kill_(Unix)
http://de.wikipedia.org/wiki/Native_POSIX_Thread_Library

No related posts.


 
 
 

Die Kommentarfunktion zu diesem Beitrag wurde deaktiviert.