Если у Вас есть достаточно пространства, можно взять изображение tar файловой системы и создать резервную копию его. Затем создайте новый ext4 раздел с более высоким или понизьте количество inode по мере необходимости. Взятие изображения tar и форматирование Вашего раздела добавляют преимущество дефрагментации его также.
Я знаю, что ext4, как предполагается, не нужен он, но неважно как трудно Вы пробуете после такого использования это будет нуждаться в нем или по крайней мере обеспечивать увеличение скорости в какой-то момент. Ext4 только мешает фрагментировать Ваш диск и все еще извлек бы выгоду из этого о каждом 1 - 3 годах. Большая проблема здесь состоит в том, что tar отображает и переформатировал, единственный способ, которым я услышал о дефрагментировать ext4 раздел.
Вы не заявили свою ОС, и 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
лучшие инструменты для идентификации процессов по имени и/или аргументов.
Необходимо определенно начать читать страницы справочника. Пример от man ps
(страница справочника онлайн):
-f Do full-format listing. This option can be combined with many other UNIX-style options to add additional columns. It also causes the command arguments to be printed. When
used with -L, the NLWP (number of threads) and LWP (thread ID) columns will be added. See the c option, the format keyword args, and the format keyword comm.
Таким образом попытайтесь работать ps -ef | grep rackup
;-)
$ ps -ef | grep rack | grep -v grep
Вывод: 501 19895 374 0 12:43 ttys001 0:01.05 /home/user/.rvm/gems/ruby-1.9.3-p429@gearup/bin/rackup
– coldday
17.10.2013, 11:45
Конечно, программы могут получить доступ (измените и удалите), их аргументы. Это считают средством защиты, особенно когда имена пользователей, пароли и другая уязвимая информация могли бы быть выставлены. Адреса, порты, ключи общей памяти и другую информацию можно считать чувствительными также.
Процессы демона и другие серверы, какие дочерние процессы ветвления/должностного лица также могут потерять аргументы как часть их обработки.
strace
отправляется выше. Поскольку я понимаюrackup
выполненияruby
, это заменяет родителяrackup
- процесс с собой и очищаетсяrackup
имя от PS произвело. Я иду правильный образ мыслей? – coldday 17.10.2013, 14:18execve()
заменяет рабочий процесс, записи таблицы процессов (имя и args) обновляются соответственно. Вы видите, что аргументы передаютсяruby
. Если Вы не видите аргументы вps
илиproc
для рубинового процесса затем возможно, это - overwrittn: оба могут быть изменены самим процессом, даже в Ruby). Это является наиболее часто используемым к состоянию показа или текущим запросам. Корректный – mr.spuratic 17.10.2013, 15:23