8

При запуске 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 ответа3

14

Квадратные скобки используются для процессов, которые не имеют связанной командной строки (в основном это потоки ядра и некоторые системные службы).

Если я правильно помню, вы могли бы добиться того же эффекта для вашего процесса, установив argv[0] в пустую строку.

5

Да, это потоки ядра, созданные подсистемами ядра. Они создаются с использованием функций kthread_create() или kernel_thread() в ядре.

2

Ваш пример даже не показывает [...] , поэтому я не уверен на 100%, о чем вы говорите. Однако возможно изменить аргументы argv любой программы (в Linux). Аргументы отражены в выводе ps .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .