
решение1
По умолчанию ps
показывает только процессы, подключенные к текущему терминалу (tty): в вашем случае, ваша оболочка и ps
он сам (оба на pts/2
). Вам нужно снять это ограничение, чтобы увидеть sleep
; например
ps -e
Ознакомьтесь man ps
со множеством доступных вариантов фильтрации процессов.
решение2
Проблема в том, что когда я создаю второй терминал и ввожу «ps», процесса нет
sleep
.
В некоторых (не всех) интерактивных оболочках sleep
может быть встроенная оболочка, вызывающая, например,сон(3)(точно так же, как cd
встроенная оболочка, вызывающаячдир(2)).
В этом случае вы ничего не увидите.sleep
процесспотому что нет ни одного. Процесс, который затемсон(3)-ing - это вашОболочка Unix; вы даже можете написать свой собственный интерпретатор оболочки (см.поясдля простого, но немного глючного примера).
Многие оболочки LinuxОткрытый исходный кодпрограммное обеспечение (илибесплатно программное обеспечение), поэтому, пожалуйста, изучите их исходный код, чтобы узнать, вызывают ли онисон(3)илиusleep(3)-или даже соответствующим образомопрос(2)и т.д. ...- Смотрите такжевремя(7)ивыберите_тут(2). Подробнее осистемные вызовы(2)и подумайте о тех, которые делает ваша оболочка (или наблюдайте за ними страсса(1)илиltrace(1)или отладчик).
Многие дистрибутивы Linux имеютGNU-башкак обычная интерактивная оболочка. Но вы можете установитьзшилирыбаилиэсв качестве оболочки входа (счш(1)).
Мои личные предпочтения zsh
(чьиавтодополнениевозможности Debian просто великолепны).
Подумайте о том, чтобы прочитать некоторыеучебник оОперационные системыи/или кодирование собственногоОболочка Unixв качестве упражнения или расширения существующего (например, путем добавления sleep
встроенной функции, если таковой отсутствует).