Вы не заявили свою ОС, и ps
является довольно определенным для ОС (и по поводу Linux, конкретное распределение). И Linux и FreeBSD, по крайней мере, соответствуют Вашему использованию /proc
. ps -e
выводы только comm
(возможно усеченная "команда") не аргументы.
На Linux или *BSD пробуют за ps
:
ps axwwo "pid ppid uid comm args"
args
поле, в котором Вы, вероятно, нуждаетесь, и двойные "w" опции позволяют "неограниченную ширину" вывода. Полный путь может превысить свободное место (ps
предпочитает одну строку для каждого процесса, и проверяет Вашу терминальную ширину), таким образом, Вы будете не обязательно видеть полный путь или аргументы.
Однако Ваше использование /proc/xx/cmdline
корректно, просто нет никаких аргументов.
Вторая проблема, вероятно, является результатом rackup
так как исполняемый файл является сценарием оболочки, я предполагаю, что сценарий является недолгим и что аргументы высосаны в Ruby ARGV
. Можно попробовать
strace -rf -e trace=process rackup ...
видеть, что происходит.
Необходимо смочь использовать rackup's -P
или --pid
опция записать файл PID для каждого экземпляра, затем можно контролировать и отличить определенные экземпляры, если это - то, что Вы пытаетесь сделать.
В целом, хотя pgrep
или pidof
лучшие инструменты для идентификации процессов по имени и/или аргументов.
Путем проб и ошибок я нашел следующий раздел в моем / etc / ppp / options
:
# BSD licensed ppp-2.4.2 upstream with MPPE only, kernel module ppp_mppe.o
# {{{
refuse-pap
refuse-chap
refuse-mschap
# Require the peer to authenticate itself using MS-CHAPv2 [Microsoft
# Challenge Handshake Authentication Protocol, Version 2] authentication.
require-mschap-v2
# Require MPPE 128-bit encryption
# (note that MPPE requires the use of MSCHAP-V2 during authentication)
require-mppe-128
# }}}
Комментирование всех вариантов отказа - *
и требует - *
опций сделали аутентификацию (и соединение) успешной.