Autofaucets.ru - автоматический сборщик криптовалюты с кранов!

ЗОМБИ ПРОЦЕССЫ В ЛИНУКС. Что это значит, как с этим бороться и стоит ли.

Posted by Cooper Tue, 24 Feb 2009 20:09:00 GMT

Наверняка хоть раз многие задавали себе вопрос, глядя на выдачу команды ps ax, что это загадочные zombie процессы. Их пытаешься удалить (буквально убить) командой kill, но они остаются целыми и невредимыми.

10310 ?        Z      0:00 [php <defunct>]
10316 ?        Z      0:00 [php <defunct>]
10352 ?        Z      0:00 [php <defunct>]

На самом деле зомби уже уничтоженные процессы. А, как известно, нельзя убить дважды :). Ранее для них уже была выполнена команда kill, но, по разным причинам, она не смогла завершиться завершением процесса. Он остается формально существующим, но ресурсы, отведенные для него, на самом деле, освобождаются. Причина существования zombie процессов заключается в том, что родительский процесс может запросить статус завершения или затребовать статистику использования ресурсов порожденного зомби. В случае, если процесс-родитель не нуждается больше в зомби, он сигнализирует об этом операционной системе с помощью вызова системной функции wait(). В нормальной ситуации, когда процесс завершается, все его child processes становятся наследниками init, PID которого равен 1. Init всегда ждёт завершения child processes, для того, чтобы избежать порождения зомби. Если всё же в вашей системе завелись зомби, это означает, что они не обслуживают более свои родительские процессы (определить, кстати, которые можно командой ps -lax, колонка PPID):

[user1@www user1]$ ps -lax
F   UID   PID  PPID PRI  NI   VSZ  RSS WCHAN  STAT TTY        TIME COMMAND
0     0 10302     1  15   0 29420 8132 -      S    ?          0:06 /usr/local/bin/ruby /var/www/site/public/dispatch.fcgi
0     0 10310 10302  15   0     0    0 -      Z    ?          0:00 [php <defunct>]
0     0 10316 10301  15   0     0    0 -      Z    ?          0:00 [php <defunct>]

В этом случае у вас есть три варианта: (1) исправить процесс родитель; (2) убить его; (3) или продолжать жить с этим. Надо заметить, что жить с этим не так уж и сложно, поскольку зомби - это всего лишь дополнительная строчка в выдаче команды ps .

Posted in  | Tags , , , , , ,  | 3 comments

Изменение часового пояса (timezone) в ОС Linux через терминальный режим.

Posted by Cooper Tue, 17 Feb 2009 12:32:00 GMT

Многие современные Linux дистрибутивы имеют в своем составе программы с довольно дружественным интерфейсом для установки часового пояса. Часто эта функция доступна через программное меню или простым нажатием правой кнопки мыши на иконке с изображением часов в известных графических средах, таких как KDE или GNOME. Но зачастую, приходится работать в режиме терминала, где нет доступа к удобной функциональности графического интерфейса. В этом случае часовой пояс устанавливается с помощью команд Linux и весь процесс состоит из нескольких простых шагов:

1. Заходим в систему как root, проверяем текущий часовой пояс, установленный на машине. Для этого выполняем команду date. На экране появится что-то типа:

Tue Feb 17 23:31:00 CST 2009
В данном случае CST и есть наш текущий часовой пояс.

2. Зайдя в директорию /usr/share/zoneinfo мы увидим список регионов, из которых можно выбрать наиболее подходящий для нас. Допустим, мы хотим переключиться на часовой пояс Москвы. Для этого нам нужно использовать файл Moscow, находящийся в поддиректории Europe.

3. На всякий случай делаем резервную копию файла с текущими настройками:

mv /etc/localtime  /etc/localtime-old

4. Создаем символическую ссылку на нужный нам timezone:

ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime

5. Прописываем значение параметра ZONE в файле /etc/sysconfig/clock В нашем случае оно должно быть “Europe/Moscow”.

6. Устанавливаем аппаратные часы, выполнив команду:

/sbin/hwclock --systohc

7. В принципе, на этом все необходимые изменения можно считать законченными. Правда вместе с изменением часового пояса у нас «съехало» и текущее время:

Wed Feb 18 08:32:05 MSK 2009

Установим правильные значения для даты и времени, используя команду date:
date -s "02/17/2009 23:32:00"

Posted in  | Tags , ,  | 9 comments