
Antwort1
Standardmäßig ps
werden nur Prozesse angezeigt, die an das aktuelle Terminal (tty) angeschlossen sind: in Ihrem Fall Ihre Shell und ps
sich selbst (beide auf pts/2
). Sie müssen diese Einschränkung aufheben, um zu sehen sleep
; zum Beispiel
ps -e
Informieren Sie sich man ps
über die zahlreichen Möglichkeiten zum Filtern von Prozessen.
Antwort2
Das Problem ist, dass kein Prozess stattfindet, wenn ich das zweite Terminal erstelle und „ps“ eingebe
sleep
.
Bei einigen (nicht allen) interaktiven Shells sleep
könnte es sich um eine integrierte Shell handeln, die beispielsweiseSchlaf(3)(genau wie cd
ein Shell-Builtin, daschdir(2)).
Wenn das der Fall ist, sehen Sie keinesleep
Verfahrenweil es keine gibt. Der Prozess, der dannSchlaf(3)-ing ist IhrUnix-Shell; Sie könnten sogar Ihren eigenen Shell-Interpreter schreiben (sehen Sie sichSchärpefür ein einfaches, aber etwas fehlerhaftes Beispiel).
Viele Linux-Shells sindOpen SourceSoftware (odergratis Software), also untersuchen Sie bitte deren Quellcode, um herauszufinden, ob sieSchlaf(3)oderwirschlafen(3)-oder sogar angemessenUmfrage(2), usw ...- Siehe auchZeit(7)Undselect_tut(2)Lesen Sie mehr überSystemaufrufe(2)und denke an die von deiner Muschel ausgeführten (oder beobachte sie mitstrace(1)oderltrace(1)oder ein Debugger).
Viele Linux-Distributionen habenGNU Bashals die übliche interaktive Shell. Aber Sie könnten installierenzshoderFischoderesals Ihre Login-Shell (mitchsh(1)).
Meine persönliche Vorliebe ist zsh
(derenAutovervollständigungDie Einrichtungen unter Debian sind hervorragend).
Lesen Sie einigeLehrbuch überBetriebssystemeund/oder eigene ProgrammierungUnix-Shellals Übung oder als Erweiterung eines vorhandenen (z. B. durch Hinzufügen eines sleep
integrierten Elements, falls keines vorhanden ist).