Что означает [..] в 'ps' и как вы создаете такой процесс?
При запуске ps вы получаете что-то вроде:
root 2 0.0 0.0 0 0 ? S< 00:00 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S< 00:00 0:00 [ksoftirqd/0]
root 4 0.0 0.0 0 0 ? S< 00:00 0:00 [events/0]
Все процессы-демоны обычно заключаются в квадратные скобки [[]].
Что они имеют в виду (если что)? Как вы создаете процесс, который выглядит следующим образом?
Причина, по которой я спрашиваю, состоит в том, что мы создаем системный демон из rcS (программа использует fork для создания демона), но запись ps выглядит так:
root 207 0.0 0.2 1516 200 ? S 00:00 0:00 /root/testdaemo
Таким образом, мы задавались вопросом, важно ли иметь квадратные скобки [[]] и как процессы получают их в первую очередь.
Благодарю.
3 ответа
Квадратные скобки используются для процессов, которые не имеют связанной командной строки (в основном это потоки ядра и некоторые системные службы).
Если я правильно помню, вы можете добиться того же эффекта для вашего процесса, установив argv[0]
в пустую строку.
Да, это потоки ядра, созданные подсистемами ядра. Они создаются с помощью функций kthread_create() или kernel_thread() в ядре.
Ваш пример даже не показывает [...]
так что я не на 100% уверен, о чем ты говоришь. Однако возможно изменить argv
аргументы любой программы (в Linux). Аргументы отражены в выводе ps
,