www.wikidata.de-de.nina.az
kill engl toten ist ein Unix Kommando und gleichnamiger Systemaufruf um unter dem Betriebssystem laufenden Prozessen Signale zu schicken Standardmassig wird bei dem UNIX Kommando kill das Signal SIGTERM versendet welches den entsprechenden Prozess dazu auffordert sich zu beenden Da das Beenden von Prozessen nur ein Anwendungsfall des Programms kill bzw Systemaufrufes kill ist ist die Bezeichnung kill irrefuhrend da es sich allgemeiner um Interprozesskommunikation handelt Der Name stammt von Unix Versionen vor Unix V4 bei denen es noch keinen Signal Parameter gab Inhaltsverzeichnis 1 Funktionsweise 2 Verwendung 3 Alternativen 3 1 Tastenkombinationen 3 2 killall 3 3 pkill 4 Siehe auch 5 Einzelnachweise 6 WeblinksFunktionsweise BearbeitenDer Unix Befehl kill stellt einen Wrapper um den Betriebssystemaufruf kill dar Zwar ist es auf jedem Unix Derivat als alleinstehende Anwendung vorhanden ublicherweise unter bin kill alle modernen Unix Shells verfugen allerdings aufgrund seiner trivialen Implementierung uber ein eingebautes kill Kommando Mit kill konnen viele verschiedene Signale versendet werden 1 die am meisten benutzten Signale sind allerdings SIGTERM und SIGKILL Ohne Angabe von Parametern versendet kill SIGTERM Die empfangenden Programme konnen dieses Signal abfangen und vor dem Beenden noch unbedingt notwendige Arbeitsschritte durchfuhren z B geoffnete Dateien abspeichern SIGKILL wird verwendet um einen Prozess der sich trotz Empfang eines SIGTERM Signals nicht beendet zu beenden SIGKILL kann wie auch SIGSTOP vom Programm nicht zur Durchzufuhrung programmspezifischer Aktionen abgefangen werden Die zwei Signale SIGKILL und SIGSTOP werden demnach nur vom Kernel gesehen und bieten damit in jedem Fall zuverlassige Wege einen Prozess zu kontrollieren Wahrend SIGKILL den Kernel anweist den Prozess zu toten zu beenden pausiert der Kernel den Prozess bei einem SIGSTOP bis das Signal SIGCONT empfangen wird Nicht jeder Aufruf von kill dient dazu einen Prozess zu beenden So gibt z B das Programm dd bei dem Signal SIGUSR1 den aktuellen Verarbeitungsstatus eines Kopiervorgangs auf der Standardfehlerausgabe aus dies lasst sich mit kill USR1 pid provozieren Bei Unix als klassischem Mehrbenutzersystem hat jeder Prozess einen Inhaber UID Jeder Prozess darf nur ein Signal zu einem Prozess der dem gleichen Inhaber gehort versenden Das heisst dass jeder Benutzer auch nur seine eigenen Prozesse beenden darf Ausgenommen ist der Superuser welcher jedem Prozess auf dem System Signale schicken darf Verwendung BearbeitenDer Syntax des Unix Befehls lautet kill i Parameter i i eine oder mehrere a href Process identifier html title Process identifier Prozess IDs a i als optionaler Parameter kann das gewunschte Signal angegeben werden in der Form i SIGNAL i wobei SIGNAL entweder der Signalnummer oder dem Namen entspricht Um beispielsweise einem fiktiven Prozess mit der ID 4711 das Signal SIGTERM zu schicken gibt es drei mogliche Aufrufvarianten kill 4711 kill TERM 4711 kill 15 4711Analog geschieht der Aufruf mit anderen Signalen z B SIGKILL kill KILL 4711 kill 9 4711Ein Signal kann an alle Prozesse einer Prozessgruppe geschickt werden Dazu wird die PID des Gruppenleiters mit negativen Vorzeichen genommen die PGID kann mit dem Programmaufruf ps j ermittelt werden kill CONT 4711Alternativen BearbeitenTastenkombinationen Bearbeiten Die bei Unix ublichen Geratetreiber verschicken Signale wenn sie bestimmte Zeichen empfangen haben Der Geratetreiber kann mit dem Programm stty eingestellt werden 2 Bei Unix Shells mit Job Control werden die Signale an die im Vordergrund laufende Prozessgruppe weiter gegeben Um ein Programm zu beenden reicht unter Unix so meist die Eingabe von Strg C um das Signal SIGINT auszulosen Ublicherweise wird durch die Eingabe von Strg Z SIGTSTP versandt ferner mit Strg SIGQUIT welches den Kernel auffordert einen Speicherauszug core dump auszugeben Die maximale Grosse eines Speicherauszugs kann eingestellt werden und kann den Wert 0 kein Speicherauszug erstellen annehmen 3 killall Bearbeiten Einige Unix Derivate unter anderem Solaris rufen das Unix Kommando killall automatisch auf wenn das System herunterfahrt Es verhalt sich wie kill nur wird ein Signal nicht nur zu einem einzigen Prozess geschickt sondern zu allen Prozessen auf dem System Auf anderen Unix Derivaten u a IRIX Linux und FreeBSD wird das Kommando killall hingegen verwendet um einen Prozess anhand seines Namens zu beenden Um zum Beispiel XMMS einen Mediaplayer der per xmms aufgerufen wurde zu beenden gibt der Benutzer killall xmms ein Auf diese Weise werden alle Prozesse mit dem Namen xmms beendet Zudem existiert ublicherweise zusatzlich killall5 das sich ahnlich wie das killall von SystemV Solaris verhalt pkill Bearbeiten a href Pkill html class mw redirect title Pkill pkill a beendet Prozesse anhand von Teilen ihres Namens Das Kommando wurde in Solaris 7 eingefuhrt und wurde seitdem auch in Linux und OpenBSD implementiert pkill ermoglicht es Prozesse anhand ihres Namens einfacher zu beenden als es mit killall moglich ist wenn man deren genauen Namen nicht kennt Um zum Beispiel die dem Webbrowser Firefox zugehorigen Prozesse zu beenden ohne sich dabei pkill sowie pgrep zu bedienen musste man eine Zeile wie kill a href Ps Unix html title Ps Unix ps a ax awk 5 firefox print 1 schreiben wohingegen mit pkill bereits die Eingabe von pkill firefox den Zweck erfullt Siehe auch Bearbeitenxkill zum Beenden von X Window ProgrammenEinzelnachweise Bearbeiten siehe Signal Unix fur eine Liste der ublichen Signale https www man7 org linux man pages man1 stty 1 html https manpages ubuntu com manpages trusty man2 setrlimit 2 htmlWeblinks Bearbeiten a href http www opengroup org onlinepubs 9699919799 utilities kill html kill a terminate a process Open Group Base Specification a href https pubs opengroup org onlinepubs 009695399 functions kill html kill a send a signal to a process or a group of processes Open Group Base Specification b kill 2 b send signal to a process OpenBSD System Calls Manual b killall 1 b kill processes by name Debian GNU Linux Ausfuhrbare Programme oder Shell Befehle Handbuchseite b killall5 1 b send a signal to all processes System V Debian GNU Linux Ausfuhrbare Programme oder Shell Befehle Handbuchseite pgrep 1 b pkill 1 b look up or signal processes based on name and other attributes Debian GNU Linux Ausfuhrbare Programme oder Shell Befehle Handbuchseite b xkill 1 b kill a client by its X resource Debian GNU Linux Ausfuhrbare Programme oder Shell Befehle Handbuchseite Abgerufen von https de wikipedia org w index php title Kill Unix amp oldid 226373406