Разница между ps -ef и ps -auxwww?

В моем случае у меня есть учетная запись пользователя только для запуска одного скрипта, поэтому я предоставляю конфигурацию tmux по умолчанию в домашнем каталоге этого пользователя, создавая файл ~/.tmux.conf

Мой ~файл /.tmux.conf выглядит (примерно )так:

new-session -d -s MYSESSIONNAME
set -g status off
new-window ~/my-startup-script.sh

мой -запуск -script.sh должен иметь набор разрешений +x, очевидно.

Чтобы запустить скрипт ~/.tmux.conf tmux, введите команду

tmux start-server
0
08.06.2021, 16:31
1 ответ

psочень зависит от системы -. Есть и были разные вкусы по историческим причинам.

ps -ef— это синтаксис для получения информации eсамого процесса в формате fuller -для Unix, основанный на группе поддержки AT&T Unix (USG ), части AT&T, занимавшейся коммерциализацией Unix. Или синтаксис SysV, если хотите, хотя ps -efуже был в SysIII в 1980 году.

Это указано в POSIX, но только в опции XSI (, которая соответствует спецификации X/Open, которая была попыткой внести некоторую форму стандартизации для систем на основе SysV -, теперь объединенных в POSIX ).

Ближайшим эквивалентом POSIX будетps -A -o user,pid,ppid,tty,time,args(без столбцаC(CPU )).

ps auxбудет синтаксисом BSD из более академических систем, основанных на исходной версии Unix, разработанной исследовательским центром AT&T (Bell Labs ). Вы не использовали -. aдля всех процессов (не только связанных с текущим терминалом ), uдля ориентированного на пользователя вывода для включения дополнительной информации, xдля также включают процессы, не связанные с каким-либо терминалом (Research Unix v3, где psвпервые появилось -xдля этого ). wдля широкий был добавлен намного позже.

Реализация procpsps, обычно встречающаяся в системах на базе Linux -, пытается согласовать все эти разные (и часто несовместимые )синтаксисы, SysV, BSD и даже более похожие на HP/UX. или AIX,поэтому поддерживает большинство синтаксисов, за исключением случаев, когда один конфликтует с другим.

Справочная страница вашей системы даст вам все подробности о том, что означают различные флаги.

Будет ли ps -efусекать или нет командную строку, очень сильно зависит от системы, версии системы, реализации и версии ps, а также от того, направляется ли вывод на терминал или нет. Некоторые поддерживают -w, чтобы сделать его шире. В некоторых системах, включая более старые версии Linux, командная строка усекается самой системой, поэтому вы не можете легко получить ее полностью, если она очень большая.

Стандартно у вас также есть возможность указать нужные поля:

ps -A -o pid -o args

Например, только для pid и командной строки (технически список аргументов, переданных последней команде, выполняемой процессом, хотя во многих системах процессы также могут произвольно изменять )из Aвсех процессов.

ps -A -o pid= -o args=

, чтобы пропустить заголовок.

Обратите внимание, что не все системы поддерживают одинаковый список полей.

В скриптах я бы рекомендовал придерживаться синтаксиса POSIX (, избегая необязательных функций ).

А для поиска процессов по некоторым критериям, включая командную строку, используйтеpgrep(pkillдля их уничтожения ). Они не являются стандартными, но довольно распространены и гораздо более надежны в использовании, чем обработка вывода ps.

0
28.07.2021, 11:26

Теги

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