Я ввел ps -p 3454 -o command
и получил следующий результат:
COMMAND
/usr/bin/ssh-agent -D -a /run/user/1000/keyring/.ssh
Что -D -a
здесь имеется в виду?
Если я использую ps -p 3454 -o comm
, я не получаю вывод /run/user...., а только команду ssh-agent
.
Что означает здесь /run/user....? Также comm=
и comm
то же самое?
решение1
В соответствии сps(1) — Страница руководства Linuxи согласно моему тестированию, вот некоторые детали, которые помогут прояснить этот вывод. Это поможет вам лучше понять, что происходит с ps
командой, которую вы запускаете.
Вся твоя команда такова:ps -p 3454 -o command
- Часть
ps -p 3454
этого получает сведения об активном запущенном процессе для pid3454
- Эта
-o command
часть выводит фактическую команду и аргументы запущенного процесса, привязанные к pid
Когда вы запустили это, чтобы отобразить 3453
детали PID, это былоssh-агентпроцесс. Используя -o command
выходные данные необработанной команды и аргументы для ssh-agent
которых использовались -D -a
параметры в момент, когда ps
команда делала снимок.
Использование just -o comm
на самом деле просто выводит только имя исполняемого файла pid. Это на самом деле просто означает -o comm
и -o command
отображает различные детали процесса, который вы запрашиваете.
Поддерживающие ресурсы
ps(1) — Страница руководства Linux
comm
:- Показать имя команды (только имя исполняемого файла). Изменения имени команды не будут показаны. Вывод в этом столбце может содержать пробелы.
command
:- Показать команду со всеми ее аргументами в виде строки. Могут быть показаны изменения аргументов. Вывод в этом столбце может содержать пробелы.
решение2
"-D -a" не имеет никакого отношения к PS. PS выводит список процессов, а запущенный процесс - это "/usr/bin/ssh-agent -D -a /run/user/1000/keyring/.ssh" - т.е. -D -a - это параметры, передаваемые в ssh-agent.
Относительно ssh-agent: -D означает запуск в фоновом режиме, а -a означает «привязаться ко всем адресам».
В моей системе Ubuntu я вижу 2 процесса «ssh-agent» — один в фоновом режиме, предположительно, связанный с тем, что я делаю в командной строке, а второй является клиентом сеанса рабочего стола, поэтому, скорее всего, находится на переднем плане, чтобы взаимодействовать с ним. (Действительно, когда я завершаю процесс, связанный с процессом с параметрами -D -a, и запускаю сеанс ssh с рабочего стола, он снова запрашивает у меня аутентификацию и перезапускает этот процесс)