Процессы, вышедшие из-под контроля
Категория: Управление процессами | Автор: admin | 30-09-2009, 04:24 | Просмотров: 3384

Иногда в системе появляются процессы, которыми по той или иной причине должен заниматься администратор. Неуправляемые процессы бывают двух видов: пользовательские, потребляющие слишком много системных ресурсов (например, времени центрального процессора или дискового про­странства), и системные, которые внезапно "впадают в буйство" и начинают вести себя непредсказуемо. Процессы первого типа могут быть вполне работоспособными, просто они некорректно обращаются с ресурсами. В то же время системные процессы всегда должны работать в соответствии с определенными правилами.

Процессы, занимающие чересчур много времени центрального процессора, можно выявить, проанализировав результаты работы команды ps. Если очевидно, что какой-либо пользовательский процесс потребляет больше ресурсов, чем ему действительно необходимо, его нужно исследовать. Самый простой способ разобраться в ситуации — связаться с владельцем процесса и спросить, что происходит. Если это невозможно, придется действовать на свой страх и риск. Хотя в обычной ситуации системный администратор старается не заходить в каталоги пользователей, это допускается, если нужно изучить исходный текст неуправляемого процесса и выяснить, что же он делает.

Это может понадобиться по двум причинам. Во-первых, процесс может быть действительно важным для пользователя. Уничтожать каждый процесс, который занимает много времени центрального процессора, не совсем разумно. Во-вторых, процесс может оказаться деструктивным, написанным хакером-злоумышленником. В этом случае нужно точно знать, что он натворил, иначе исправить положение не удастся.

Если причину появления неуправляемого процесса определить не удается, приостановите его сигналом STOP и отправьте владельцу по электронной почте сообщение о том, что случилось. Процесс можно впоследствии перезапустить сигналом CONT. Помните о том, что некоторые процессы перестают нормально функционировать в случае слишком долгого простоя, поэтому описанный подход не всегда приемлем. Например, процесс мог осуществлять обмен данными через сетевое соединение, а после "пробуждения" обнаруживается, что соединение уже разорвано.

Если процесс использует слишком много ресурсов процессора, но делает нечто обоснованное и работает правильно, необходимо с помощью команды renice понизить его приоритет и попросить владельца в будущем запускать процесс с более низким приоритетом.

В системах, где не реализованы квоты, результаты работы неуправляемых процессов могут заполнить всю файловую систему и, таким образом, повлечь за собой бесчисленные проблемы. При переполнении файловой системы на консоль выдается множество сообщений, и попытки записать что-либо на диск вызывают появление сообщений об ошибках.

Первое, что нужно сделать в такой ситуации — это остановить процесс, который переполняет диск. Если на диске было специально зарезервировано свободное пространство, то в случае его внезапного заполнения можете быть уверены: тут что-то неладно. Не существует средства, аналогичного команде ps, которое сообщило бы о том, кто использует дисковое пространство. Но есть утилиты, позволяющие получить список открытых файлов и процессов, работающих с ними; описание утилит fuser и lsof приведено в параграфе 5.2.

Можно приостановить все подозрительные процессы, пока не обнару­жится источник проблем. В этом случае не забудьте после выявления нарушителя удалить все созданные им файлы и перезапустить невиновные процессы.

Старый и хорошо известный трюк — запуск из интерпретатора команд бесконечного цикла:

 

while 1

mkdir adir

cd adir

touch afile

end

 

Такое иногда происходит, если злоумышленник проник в систему через незащищенную учетную запись или зарегистрированный в системе терминал, брошенный без присмотра. Созданное дерево каталогов не занимает много места на диске, просто переполняется таблица индексных дескрипторов файловой системы, и другие пользователи теряют возможность создавать новые файлы. Единственное, что можно сделать в подобной ситуации, — устранить последствия и предупредить пользователей о необходимости защиты своих учетных записей. Поскольку дерево каталогов, оставленное таким маленьким программным "перлом", может оказаться слишком большим для команды rm -r, придется написать сценарий, который спустится по дереву вниз, а затем, возвращаясь, удалит все каталоги.

Если проблема возникла в каталоге /tmp, а он был создан как отдельная файловая система, то вместо того чтобы пытаться удалять файлы, можно проинициализировать каталог /tmp с помощью команды newfs.



 (голосов: 1)
Версия для печати | Комментариев: 0
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.


 
Логин
Пароль
 

 
Locations of visitors to this page