
Respuesta1
De forma predeterminada, ps
solo muestra los procesos adjuntos al terminal actual (tty): en su caso, su shell y ps
él mismo (ambos en pts/2
). Debe eliminar esta restricción para ver sleep
; Por ejemplo
ps -e
Consulte man ps
las numerosas opciones disponibles para filtrar procesos.
Respuesta2
El problema es que cuando creo la segunda terminal y pongo "ps", no hay ningún
sleep
proceso.
Con algunos (no todos) shells interactivos, sleep
podría ser un shell incorporado que invoque, por ejemplodormir(3)(exactamente como lo cd
es un shell incorporado que invocachdir(2)).
Cuando ese sea el caso, no verás ningunasleep
procesoporque no hay ninguno. El proceso que luegodormir(3)-ing es tushell Unix; incluso podrías escribir tu propio intérprete de shell (mirafajapara un ejemplo fácil pero con algunos errores).
Muchos shells de Linux sonfuente abiertasoftware (osoftware libre), así que estudie su código fuente para saber si llamandormir(3)onosotrosdormir(3)-o incluso apropiadamenteencuesta(2), etc...- Ver tambiéntiempo(7)yseleccionar_tut(2). Leer más sobrellamadas al sistema (2)y piensa en los que hace tu caparazón (u obsérvalos conrastro(1)otraza(1)o un depurador).
Muchas distribuciones de Linux tienenfiesta GNUcomo el shell interactivo habitual. Pero podrías instalarzshopezoescomo su shell de inicio de sesión (conchash(1)).
Mi preferencia personal es zsh
(cuyoautocompletadoLas instalaciones de Debian son excepcionales).
Considere leer algunoslibro de texto sobreSistemas operativosy/o codificando el tuyo propioshell Unixcomo ejercicio, o ampliando alguno existente (por ejemplo, añadiendo un sleep
componente incorporado, si no lo tiene).