Что параметры командной строки означает в pstree-a опцию

Когда считано руководство pstree

 -a     Show command line arguments.  If the command line of a process is swapped  out,  that  process  is
          shown in parentheses.  -a implicitly disables compaction for processes but not threads.

Я очень смущен 'параметрами командной строки'

Сравните вывод

me@alpha:~$ pstree |head -5
systemd-+-ModemManager---2*[{ModemManager}]
        |-NetworkManager-+-dhclient
        |                `-2*[{NetworkManager}]
        |-accounts-daemon---2*[{accounts-daemon}]
        |-acpid
me@alpha:~$ pstree -a | head -5
systemd splash
  |-ModemManager --filter-policy=strict
  |   `-2*[{ModemManager}]
  |-NetworkManager --no-daemon
  |   |-dhclient -d -q -sf /usr/lib/NetworkManager/nm-dhcp-helper -pf /run/dhclient-wlp3s0.pid -lf...

Командные строки состоят из функции, опций и аргументов

Скажите выставочные параметры командной строки-a, подразумевает, что другие просто показывают funtions и опции, но дело не в этом.

Что параметры командной строки означает здесь?

1
задан 22 January 2019 в 07:28

2 ответа

Параметры командной строки, в целом, относятся ко всем аргументам после названия запущенной программы. Например, в Вашей команде pstree | head -5, существует один аргумент head который является -5.

В pstree вывод, дерево состоит из корня любого pid (идентификатор процесса) или init и затем дерево дочерних потоков. Например, в Вашем выводе, NetworkManager является родительским процессом, который выполняет тот dhclient и 2 NetworkManager потоки.

Добавление -a отметьте также печатает аргументы, которые использовались, когда каждый процесс или поток были запущены. Например, в Вашем выводе, мы видим это NetworkManager был запущен с одного аргумента --no-daemon, и аналогично dhclient был запущен с нескольких аргументов.

Это - вся страница справочника, подразумевает "под выставочными параметрами командной строки".

1
ответ дан 7 December 2019 в 13:19

Аргументы - все, что не является самим названием команды. Например, в

dhclient -d -q -sf /usr/lib/NetworkManager/nm-dhcp-helper -pf /run/dhclient-wlp3s0.pid -lf

аргументами является весь из

-d -q -sf /usr/lib/NetworkManager/nm-dhcp-helper -pf /run/dhclient-wlp3s0.pid -lf

Это значения в положениях 1 и вперед в C argv выстройте данный программе, когда она запустится, или в sys.argv[1..] в Python.

Что pstree руководство подразумевает, это без -a это только перечисляет название каждой программы и не любой из других частей, данных на командной строке. Именно это показывают Ваши два примера: просто ModemManager перечислен в первой версии без -a, но ModemManager --filter-policy=strict в -a версия. Это не заботится ли "аргументы", запущенные с - или что они представили.


Иногда программы отличают "опции" и "флаги" и "аргументы", и даже "управляет" в их документации, но к системе они - все просто аргументы. Программе дают всех их вместе и добирается для решения себя, что сделать с ними, и которые вписываются в каждую категорию. Может быть полезно помочь человеку думать о том, что они делают, но это чисто информативно и не вынуждено. С тех пор pstree должен показать каждую программу, она не может знать, как они все думают о своих командных строках и должны быть очень универсальными.

В сущности структура командной строки

command-name argument-1 argument-2 argument-3...

и те аргументы могли быть -x или подкоманда или путь, и они являются всеми одинаковыми до command-name видит их и решает, что сделать. pstree видит их всех в необработанной форме и просто сообщает о них Вам, когда Вы просите их.

1
ответ дан 7 December 2019 в 13:19

Другие вопросы по тегам:

Похожие вопросы: