У меня есть несколько предложений. Давайте просто не волноваться о, почему это происходит, но, как выполнить PS без появления проблемы.
Вот несколько предложений, которые было бы легко попробовать, учитывая Ваш уровень опыта с linux/unix:
Попытайтесь работать ps auxwwf > myprocesses && cat myprocesses
. Это даст Вам список всех рабочих процессов с подробной информацией и если первая команда будет успешна, то Вы сможете считать содержание myprocesses.
Не использовать ps
отдельно. Существует много различных изменений, но мой любимый auxwwf
. Другой хороший ps lax
.
Попытайтесь отправить процесс в фон путем выполнения: ps auxwwf &
Затем можно ввести jobs
и посмотрите PID процесса PS. Можно затем поднять его путем ввода fg
. Для отправки команды PS в фон снова, можно нажать Ctrlz. Таким образом, Вы управляете ps
. Если это зависает, можно открыть другой терминальный сеанс и уничтожить PID, связанный с ним.
Сообщите мне, работают ли они на Вас. Они - всего несколько вещей, которые можно попробовать как работа вокруг. Я уверен, что у кого-то будут другие пути.
Как написано в моем комментарии, записываемая /var/log
вроде как важна, но есть вещи, которые можно сделать, чтобы как можно меньше сохранялось. Например, вы можете настроить logrotate
на вращение лог-файлов в зависимости от их размера, сжимая старые. Вы также можете настроить syslog
на запись только CRIT
и выше в лог-файлы (остальные отбрасываются)
logrotate
пример:
compress
/var/log/messages {
rotate 5
size 100k
postrotate
/usr/bin/killall -HUP syslogd
endscript
}
(Вам нужно настроить logrotate /etc/logrotate.conf
, чтобы он также выполнялся в cronjob). Пример
rsyslog.conf
:
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imklog # provides kernel logging support (previously done by rklogd)
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
*.crit /var/log/messages
*.emerg *
Это, наверное, лучшее промежуточное звено, так как почти ничего не заносится в журнал, но вы все равно получаете уведомления о критических событиях. Вы также можете подумать о настройке удаленного syslog на сервер с большим объемом памяти, если хранение логов важно.
Вместо того, чтобы делать его только для чтения, я бы создал /var/log
как tempfs. и регулярно подрезал. Конечно, это работает, только если у вас достаточно свободной оперативной памяти.
Вы можете сделать то же самое для других возможных несущественных каталогов, например /var/tmp
Записи в моем /etc/fstab
(сейчас закомментированы):
tmpfs /var/tmp tmpfs defaults,noatime,mode=1777,size=128M 0 0
tmpfs /var/log tmpfs defaults,noatime,mode=0755,size=128M 0 0