В чем смысл имен процессов ps, напечатанных в , таких как ?

когда я выполняю команду, например ps -aux на CentOS 6, я получаю кучу процессов, чья команда указана в [], как показано ниже. В чем смысл [] в названии? Я предполагаю, что это особые процессы какого-то рода, что заставляет имя процесса отображаться с [] вокруг него?

[root@centos6 src]# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 18:48 ? 00:00:01 /sbin/init root 2 0 0 18:48 ? 00:00:00 [kthreadd] root 3 2 0 18:48 ? 00:00:00 [migration/0] root 4 2 0 18:48 ? 00:00:00 [ksoftirqd/0] root 5 2 0 18:48 ? 00:00:00 [migration/0] root 6 2 0 18:48 ? 00:00:00 [watchdog/0] root 7 2 0 18:48 ? 00:00:02 [events/0] 

One Solution collect form web for “В чем смысл имен процессов ps, напечатанных в , таких как ?”

Если командная строка недоступна для ps , т.е. /proc/<pid>/cmdline возвращает пустую строку, тогда ps завершает ее в квадратных скобках.

Вы можете использовать это для проверки вышеперечисленного, выполнив следующую команду и затем проверив ее в списке процессов:

 $ perl -e '$0 = ""; sleep' 

Затем выполните ps :

 saml 26756 2098 0 21:21 pts/9 00:00:00 [] 

Конечно, наш процесс perl появляется с квадратными скобками ( [] ).

cmdline пустые, правда?

Да, кажется немного странным, но для подтверждения я проверил первую пару, и они определенно пусты:

 $ for i in `seq 2125`;do [ -e /proc/$i/cmdline ] || continue; \ echo -n "PID# $i: "; echo $(cat /proc/$i/cmdline);done | less PID# 1: /sbin/init PID# 2: PID# 3: PID# 4: PID# 5: PID# 15: ... PID# 1187: /sbin/rsyslogd-c4 PID# 1189: /sbin/rsyslogd-c4 PID# 1190: /sbin/rsyslogd-c4 PID# 1211: PID# 1229: irqbalance PID# 1255: rpcbind PID# 1269: mdadm--monitor--scan-f--pid-file=/var/run/mdadm/mdadm.pid ... 

Избавиться от них?

Если вы используете ключи -f и -c вы можете увидеть расширенную версию этих процессов без квадратных скобок:

 $ ps --version procps version 3.2.8 $ ps -auxfc | less USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 2 0.0 0.0 0 0 ? S Aug21 0:00 kthreadd root 3 0.0 0.0 0 0 ? S Aug21 0:04 \_ ksoftirqd/0 root 4 0.0 0.0 0 0 ? S Aug21 0:03 \_ migration/0 root 5 0.0 0.0 0 0 ? S Aug21 0:00 \_ watchdog/0 root 15 0.0 0.0 0 0 ? S Aug21 0:04 \_ events/0 root 19 0.0 0.0 0 0 ? S Aug21 0:00 \_ cpuset root 20 0.0 0.0 0 0 ? S Aug21 0:00 \_ khelper root 21 0.0 0.0 0 0 ? S Aug21 0:00 \_ netns root 22 0.0 0.0 0 0 ? S Aug21 0:00 \_ async/mgr root 23 0.0 0.0 0 0 ? S Aug21 0:00 \_ pm root 24 0.0 0.0 0 0 ? S Aug21 0:00 \_ sync_supers root 25 0.0 0.0 0 0 ? S Aug21 0:00 \_ bdi-default root 26 0.0 0.0 0 0 ? S Aug21 0:00 \_ kintegrityd/0 root 30 0.0 0.0 0 0 ? S Aug21 0:07 \_ kblockd/0 root 34 0.0 0.0 0 0 ? S Aug21 0:00 \_ kacpid root 35 0.0 0.0 0 0 ? S Aug21 0:00 \_ kacpi_notify root 36 0.0 0.0 0 0 ? S Aug21 0:00 \_ kacpi_hotplug root 37 0.0 0.0 0 0 ? S Aug21 0:00 \_ ata_aux root 38 0.0 0.0 0 0 ? S Aug21 0:00 \_ ata_sff/0 root 42 0.0 0.0 0 0 ? S Aug21 0:00 \_ khubd root 43 0.0 0.0 0 0 ? S Aug21 0:00 \_ kseriod root 44 0.0 0.0 0 0 ? S Aug21 0:35 \_ kswapd0 root 45 0.0 0.0 0 0 ? SN Aug21 0:00 \_ ksmd root 46 0.0 0.0 0 0 ? S Aug21 0:00 \_ aio/0 root 50 0.0 0.0 0 0 ? S Aug21 0:00 \_ crypto/0 root 59 0.0 0.0 0 0 ? S Aug21 0:00 \_ scsi_eh_0 root 60 0.0 0.0 0 0 ? S Aug21 0:26 \_ scsi_eh_1 root 61 0.0 0.0 0 0 ? S Aug21 0:00 \_ scsi_eh_2 root 62 0.0 0.0 0 0 ? S Aug21 0:00 \_ scsi_eh_3 root 63 0.0 0.0 0 0 ? S Aug21 0:00 \_ scsi_eh_4 root 64 0.0 0.0 0 0 ? S Aug21 0:00 \_ scsi_eh_5 root 71 0.0 0.0 0 0 ? S Aug21 0:00 \_ kpsmoused root 72 0.0 0.0 0 0 ? S Aug21 0:00 \_ kstriped 

На странице man для ps :

  -c Show different scheduler information for the -l option. -f does full-format listing. This option can be combined with many other UNIX-style options to add additional columns. It also causes the command arguments to be printed. When used with -L, the NLWP (number of threads) and LWP (thread ID) columns will be added. See the c option, the format keyword args, and the format keyword comm. 
  • Список 10 основных процессов процессора
  • Почему мой Linux-сервер зависает с "ps aux"
  • команда ps не дает вывод в домашнем каталоге
  • Как я могу убить процесс по определенному имени и исключить процессы root
  • Что означает ответ « + выход 1»?
  • Среди полей вывода команды «ps»% CPU не является фактическим использованием ЦП в этом процессе?
  • Отсутствие пробела в выводе `ps` около EOL
  • Как перечислить все запущенные X-приложения?
  • Найти и убить процесс, который использует последовательный порт
  • Как убить весь процесс с заданным именем?
  • init: это пользовательский поток или поток ядра?
  • Linux и Unix - лучшая ОС в мире.