Как заставить / proc / [pid] / cmdline содержать аргументы команд?

Я столкнулся с проблемой, когда некоторые из моих серверов Ubuntu / Debian не отображают аргументы, переданные в rake ни в top, ни в ps. Я отследил эту проблему до изменения вывода, предоставленного / proc / [pid] / cmdline. Это файл, который, кажется, контролирует то, что отображается ps и top. На серверах, которые правильно отображают аргументы, содержимое файла cmdline похоже на:

ruby^@/home/user/.rvm/gems/ree-1.8.7-2011.03/bin/rake^@log_file_tailer:run^@

Однако на серверах, которые не показывают аргументы rake, вывод cmdline выглядит как

/home/user/.rvm/gems/ree-1.8.7-2011.03/bin/rake^@                                                                                                        ^@^@^@^@^@

То есть содержимое файл состоит из двух строк, но не содержит никакой информации об аргументах, переданных в rake.

FWIW, два моих сервера, которые выводят командную строку в менее полезном формате (тот, у которого нет аргументов), работают

Linux версии 2.6.32-5-amd64 (Debian 2.6.32-46) (скрыто) (gcc версия 4.3.5 (Debian 4.3.5-4)) # 1 SMP, вс, 23 сентября, 10:07:46 UTC 2012

и

Linux версии 3.2.0-23-generic (buildd @ casted) ( gcc версии 4.6.3 (Ubuntu / Linaro 4.6.3-1ubuntu4)) # 36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012

Интересно, что эти серверы, похоже, правильно отображают полную командную строку, включая аргументы для большинства команд, которые я вижу, за исключением rake.

Кто-нибудь знает, как я могу получить полную командную строку, включая аргументы, для вывода в cmdline на этих серверах? Я очень надеюсь, что это не потребует полной перекомпиляции ядра (с которой у меня очень мало опыта).

- РЕДАКТИРОВАТЬ - Было высказано предположение, что за установку содержимого / proc / [pid] / cmdline отвечает только rake, но это не согласуется с тем фактом, что мы ' повторно запускаете ту же версию rake (0.8.7) на серверах, которые предоставляют и не предоставляют нам параметры командной строки, вызываемые rake.

3
задан 19 April 2013 в 03:25
1 ответ

Короткий ответ: вы не можете.

Только сам процесс имеет какое-либо влияние на содержимое / proc / $ pid / cmdline . Некоторые инструменты (ab) используют это, чтобы переопределить отображение top и ps. Так что либо эти экземпляры rake сделали это, либо у них просто нет аргументов для начала.

Если rake использует этот трюк, а вы этого не хотите, возможно, документация rake скажет вам, как отключить это поведение.

4
ответ дан 3 December 2019 в 06:11

Теги

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