Tag Archives: init

Change runlevels and shut down or reboot system (weight: 3)

Candidates should be able to manage the runlevel of the system.
This objective includes changing to single user mode, shutdown or rebooting the system.
Candidates should be able to alert users before switching runlevel and properly terminate processes.
This objective also includes setting the default runlevel.

The following is a partial list of the used files, terms and utilities:

/etc/inittab
shutdown
init
/etc/init.d
telinit

Уровни Выполнения

0 — Выполняются действия по выключению системы.
1 — Однопользовательский режим.
Предназначен для различных административных действий по восстановлению системы.
На этом уровне выполнения система полностью сконфигурирована, но не запущен ни один сервис,
а из пользователей может работать только один root.
2 — В Debian используется как многопользовательский режим с графическим режимом.
В остальных дистрибутивах данный уровень не определен.
3 — Многопользовательский режим с поддержкой сети.
4 — В Slackware Linux используется для графического входа в систему.
В RedHat и SuSE Linux не сконфигурирован.
5 — В RedHat и SuSE Linux используется для графического входа в систему.
В Slackware Linux не сконфигурирован.
6 — выполняются действия по перезагрузке системы.

Посмотреть текущий run level

# who -r
run-level 3  Jan  4 18:32                   last=S

или

# runlevel
N 3

N – это предыдущий уровень. В моем случае уровень не менялся. Изменим уровень

# init 5
#  runlevel
3 5

3 – предыдущий уровень. 5 – текущий уровень.

Уровень по умолчанию CentOS 5.3

# grep :initdefault: /etc/inittab
id:3:initdefault:

Уровень по умолчанию Debian 5.0

# grep :initdefault: /etc/inittab
id:2:initdefault:

Если вы внесли изменения в файле /etc/inittab перечитать конфигурацию

# telinit q

Изменение уровня выполнения на запущенной системе
Перейти в single режим

# init 1

Перезагрузить систему

# init6

Перезагрузка системы с помощью команды shutdown

# shutdown now

Опции

-r reboots the system
-H halts it (terminates operation but doesn’t power it off)
-P powers it off

Чтобы предупредить пользователям о предстоящей перезагрузке или выключении системы

# shutdown -h +15 “system going down for maintenance”

Если вы передумали)

# shutdown -c “never mind”

# man halt
NAME
halt, reboot, poweroff – stop the system.
-n Don’t sync before reboot or halt. Note that the kernel and storage drivers may still sync.
-w Don’t actually reboot or halt but only write the wtmp record (in the /var/log/wtmp file).
-d Don’t write the wtmp record. The -n flag implies -d.
-f Force halt or reboot, don’t call shutdown(8).
-i Shut down all network interfaces just before halt or reboot.
-h Put all harddrives on the system in standby mode just before halt or poweroff.
-p When halting the system, do a poweroff. This is the default when halt is called as poweroff.

Управление Runlevel
Какие сервисы запускать на различных уровнях выполнения.

0 - /etc/rc.d/rc0.d
1 - /etc/rc.d/rc1.d
2 - /etc/rc.d/rc2.d
3 - /etc/rc.d/rc3.d
4 - /etc/rc.d/rc4.d
5 - /etc/rc.d/rc5.d
6 - /etc/rc.d/rc6.d

В каталогах уровня выполнения находятся символические ссылки вида

lrwxrwxrwx 1 root root 15 Nov 24 18:12 S85httpd -> ../init.d/httpd
lrwxrwxrwx 1 root root 15 Dec 13 20:41 K87named -> ../init.d/named

S – Start, сервис будет запущен
K – Kill, сервис будет остановлен
Число – последовательность загрузки сервиса

Управление сервисами CentOS
На каких уровнях запущены сервисы

#  chkconfig --list

На каких уровнях установлен httpd

 chkconfig --list | grep httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

Изменить уровень

# chkconfig --level 2345 httpd on

Установить на всех уровнях

# chkconfig httpd on

Отключить httpd при загрузке

# chkconfig httpd off

Псевдографический инструмент для редактирования уровней выполнения -ntsysv
Редактировать runlevel 3

ntsysv --level 3

Управление сервисами Debian
Чтобы автоматически стартовал сервис, нужно выполнить

# update-rc.d apache2 defaults
Adding system startup for /etc/init.d/apache2 ...
   /etc/rc0.d/K20apache2 -> ../init.d/apache2
   /etc/rc1.d/K20apache2 -> ../init.d/apache2
   /etc/rc6.d/K20apache2 -> ../init.d/apache2
   /etc/rc2.d/S20apache2 -> ../init.d/apache2
   /etc/rc3.d/S20apache2 -> ../init.d/apache2
   /etc/rc4.d/S20apache2 -> ../init.d/apache2
   /etc/rc5.d/S20apache2 -> ../init.d/apache2

Чтобы убрать сервис из автозапуска, выполняем команду

# update-rc.d -f apache2 remove
Removing any system startup links for /etc/init.d/apache2 ...
   /etc/rc0.d/K09apache2
   /etc/rc1.d/K09apache2
   /etc/rc2.d/S91apache2
   /etc/rc3.d/S91apache2
   /etc/rc4.d/S91apache2
   /etc/rc5.d/S91apache2
   /etc/rc6.d/K09apache2

Показывать список состояния всех стартовых скриптов при запуске, утилита update-rc.d не умеет. Близкий аналог chkconfig в Debian утилита sysv-rc-conf

Устанавливаем sysv-rc-conf

# apt-get install sysv-rc-conf

Если просто запустить из консоли sysv-rc-conf

Но можно управлять и передачей параметров через командную строку.
Уровни запуска/остановки всех сервисов

# sysv-rc-conf --list

Уровень состояния конкретного сервиса

# sysv-rc-conf --list apache2

Добавить сервис в уровни загрузки 2 и 3

# sysv-rc-conf --level 23 apache2 on

Отключить ssh в уровнях 3 и 5

# sysv-rc-conf --level 35 ssh off

Если опустить параметр –level, то по умолчанию будут использоваться уровни 2, 3, 4, и 5.

Благодаря блогу proft.com.ua узнал о том что в Debian можно установить chkconfig и управлять сервисами как и в CentOS

# apt-get -y install chkconfig

Вопросы LPI-I ( приблизительные )

1) What line in /etc/inittab would indicate that your default runlevel is 5?
A. ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
B. id:5:initdefault:
C. si:5:sysinit:/etc/init.d/rcS
D. l5:5:wait:/etc/init.d/rc 5
2) Which runlevels are reserved by init for reboot, shutdown, and single-user mode purposes?
(Select all that apply.)
A. 0
B. 1
C. 5
D. 6
3) You type the following command:
$ runlevel
5 3
What can you tell about your runlevel status? (Select all that apply.)
A. The current runlevel is 5.
B. The current runlevel is 3.
C. The previous runlevel is 5.
D. The previous runlevel is 3.
4) A system administrator types the following command:
# shutdown -c
What is the effect of this command?
A. A previously scheduled shutdown is cancelled.
B. The system shuts down and reboots immediately.
C. The system shuts down and halts immediately.
D. The system asks for confirmation and then shuts down.
5) Which of the following commands may not be used instead of shutdown
in certain circumstances?
A. reboot
B. halt
C. poweroff
D. takedown
6) You want to change to single-user mode on a running system. What command might you
use to do this?
A. runlevel 1
B. telinit 1
C. shutdown -1
D. single-user
7) What does runlevel 4 do?
A. It reboots the computer.
B. It starts a multi-user system without X running.
C. It starts a multi-user system with X and an X-based login running.
D. Its purpose isn’t standardized, so it can be used for anything you like.
8) Which process always has a process ID of 1?

Ответы

1) The correct answer is B. The initdefault action specifies the default runlevel.
2) The correct answer is
A Runlevel 0 is the reserved runlevel for halting the system
B Runlevel 1 is reserved for single-user mode
D Runlevel 6 is reserved for rebooting
3) The correct answer is
B The second number is the current runlevel.
C The first number in the runlevel output is the previous runlevel
4) The correct answer is A. The -c option to shutdown cancels a previously scheduled shutdown.
5) The correct answer is D. There is no standard takedown command in Linux.
The reboot command is equivalent to shutdown -r
halt is equivalent to shutdown -H
poweroff is equivalent to shutdown -P
6) The correct answer is B. The telinit command is used to change runlevels;
when it’s passed the 1 parameter, telinit changes to runlevel 1, which is single-user mode.
The runlevel command displays the current runlevel but doesn’t change runlevels.
The shutdown command can’t be used to change runlevels except to runlevel 0 or 6.
There is no standard single-user command
7) The correct answer is D.
Runlevel 4 isn’t standardized, and most distributions don’t use it for anything specific
Option A describes runlevel 6.
Option B describes runlevel 3 on Red Hat and related distributions.
Option C describes runlevel 5 on Red Hat and related distributions.
8) # ps waux | grep init
root         1  0.0  0.0   2872  1672 ?        Ss   13:21   0:00 /sbin/init

Читать:
Знакомимся с демонами