При запуске 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
Таким образом, мы задавались вопросом, важно ли иметь скобки [[]] и как процессы получают их в первую очередь.
Спасибо.
Ответы:
Квадратные скобки используются для процессов, которые не имеют связанной командной строки (в основном это потоки ядра и некоторые системные службы).
Если я правильно помню, вы могли бы добиться того же эффекта для вашего процесса, установив
argv[0]
пустую строку.источник
mostly
- что может сделать исключение?Да, это потоки ядра, созданные подсистемами ядра. Они создаются с помощью функций kthread_create () или kernel_thread () в ядре.
источник
Ваш пример даже не показывает
[...]
, так что я не на 100% уверен, о чем вы говорите. Однако возможно изменитьargv
аргументы любой программы (в Linux). Аргументы отражены в выводеps
.источник
[...]
был задуман как заполнитель. Я имел в виду[kthreadd]
<- то,[]
что инкапсулирует имя.