В моем случае у меня есть учетная запись пользователя только для запуска одного скрипта, поэтому я предоставляю конфигурацию 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
ps
очень зависит от системы -. Есть и были разные вкусы по историческим причинам.
ps -ef
— это синтаксис для получения информации e
самого процесса в формате f
uller -для 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
для широкий был добавлен намного позже.
Реализация procps
ps
, обычно встречающаяся в системах на базе 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
.