добавьте ключ к proc/keys

Для ответа на первую часть вопроса существует несколько флагов, к которым можно добавить -f. Они включают -l, -j, -m, и -L. К сожалению, -o <format> не может быть объединен с -f.

Действительно, лучший способ получить точно, что Вы хотите, состоит в том, чтобы указать точно, что Вы хотите, например.

ps -e -o pid,ppid,pgid,sid,user,comm

Но можно добраться действительно рядом с добавлением -j кому: -f, сделать ps -efj. Это добавляет обоих PGID и SID столбцы.

Демонстрация без -e флаг для создания вывода короче сравните:

$ ps -f
UID        PID  PPID  C STIME TTY          TIME CMD
myuser     123  4513  0 18:20 pts/26   00:00:00 zsh
myuser     1282  123  0 18:20 pts/26   00:00:00 ps -f

$ ps -fj
UID        PID  PPID  PGID   SID  C STIME TTY          TIME CMD
myuser     123  4513   123   123  0 18:20 pts/26   00:00:00 zsh
myuser     1402  123  1402   123  0 18:20 pts/26   00:00:00 ps -fj

Ответить на вторую часть Вашего вопроса, причины ps -ef -o sid только показывает Ваши собственные процессы, это переключается на режим BSD, когда это решает, что Вашими флагами не был совместимый POSIX. Это обозначается сообщением

Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ

Таким образом, это эквивалентно выполнению ps ef o sid.

В режиме BSD, e средства это распечатает среду процесса, и f означает "лес". И значения по умолчанию режима BSD к печати всех процессов, принадлежавших текущему пользователю, которые имеют любой терминал, не только тех, которые на текущем терминале.

Попытайтесь измениться -o sid кому: -o sid,cmd видеть эффекты e и f опции.

$ ps ef o sid
SID
12345
  567
  567
...

$ ps ef o sid,cmd
  SID CMD
12345 -zsh USER=... LOGNAME=...
  567 zsh PWD=... LANG=...
  567  \_ ps ef o sid,cmd LANG=... PWD=...
...

И сравните с ps u видеть, что показанные процессы являются тем же (я добавил | wc -l для краткости).

$ ps ef o cmd | wc -l
20
$ ps u | wc -l
20
2
23.04.2015, 01:57
1 ответ

Не знаю, что вы имеете в виду под "консольным вводом", но, наверное, вы хотите добавить и удалить ключи из shell-скриптов или командной строки или что-то в этом роде.

Интерфейс к связке ключей ядра представляет собой набор системных вызовов, таких как add_key(2). Вы не можете получить доступ к системным вызовам непосредственно из командной строки.

keyctl - это интерфейс командной строки к связке ключей ядра, поэтому он вам понадобится.

3
27.01.2020, 22:05

Теги

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