Re: Управлениесервисамибезотносительно sysvinit/upstart/systemd
On 07.08.2015 01:27, Oleksandr Gavenko wrote:
Артём Н. <artiom14 <at> yandex.ru> writes:
* получить список всех служб и статусов - работает ли
* запускать / останавливать вручную
> Вроде везде "service $NAME start/stop/status" или --status-all
отрабатывал, хотя man страничка заявляет про
работоспособность для
> System V init script or upstart job, ничего не говоря о systemd (пакет
sysvinit-utils из sid). Эта утилита закрывает 2 вопроса.
service работает.
* запускать / останавливать перманентно (я так
понимаю понятие runlevel даже с модными системами осталось?)
В SYSTEMCTL(1) и SYSTEMD(1) написано что runlevel нету, есть нечто в виде:
systemd.unit=runlevel2.target
chkconfig <name> on/off
Пакет chkconfig.
sysv-rc-conf тоже вполне себе работает.
Всё для jessie+system.d.
deblaptop+bash# dpkg -S init/ssh init.d/ssh
openssh-server: /etc/init/ssh.conf
openssh-server: /etc/init.d/ssh
Какой из них вызывается? По:
strace -f -o ssh.out chkconfig -t ssh
видно что учитывается только /etc/init.d/*
Далее:
$ systemctl list-units --all
...
console-kit-daemon.service loaded active running Console Manager
...
$ dpkg -S console-kit-daemon.service
consolekit: /lib/systemd/system/console-kit-daemon.service
В /etc/init лежат конфиги.
http://stackoverflow.com/questions/26267032/ubuntu-14-04-etc-init-d-vs-etc-init-start-service-at-startup
Есть всякие сценарии поддержки совместимости (/lib/lsb/init-functions.d/40-systemd).
Но:
$ service console-kit-daemon status
● console-kit-daemon.service - Console Manager
Loaded: loaded (/lib/systemd/system/console-kit-daemon.service; disabled)
Active: active (running) since Mon 2015-07-20 19:57:35 EEST; 2 weeks 3
days ago
Main PID: 1142 (console-kit-dae)
CGroup: /system.slice/console-kit-daemon.service
└─1142 /usr/sbin/console-kit-daemon --no-daemon
$ chkconfig -t console-kit-daemon
console-kit-daemon: unknown service
Это некий особый сервис что его не нужно пользователю останавливать?
Нет. chkconfig всё-таки работает с Init скриптами, а они поддерживаются system.d.
root@dana:~# systemctl status console-kit-daemon.service
● console-kit-daemon.service - Console Manager
Loaded: loaded (/lib/systemd/system/console-kit-daemon.service; disabled)
Active: active (running) since Вт 2015-08-04 23:05:06 MSK; 2 days ago
Main PID: 2323 (console-kit-dae)
CGroup: /system.slice/console-kit-daemon.service
└─2323 /usr/sbin/console-kit-daemon --no-daemon
https://fedoraproject.org/wiki/Systemd#Does_chkconfig_command_work_with_systemd.3F
Перманентно: systemctl enable/disable <служба>
Универсальную утилиту не подскажу.
Еще бяка - в конце /etc/init/ssh.conf:
# if you used to set SSHD_OPTS in /etc/default/ssh, you can change the
# 'exec' line here instead
exec /usr/sbin/sshd -D
т.е. systemd скрипты плюют на /etc/default/*...
Это не так (впрочем, вы уже об этом ниже писали).
Всё зависит от скрипта.
В /lib/systemd/system/ssh.service:
[Service]
EnvironmentFile=-/etc/default/ssh
ExecStart=/usr/sbin/sshd -D $SSHD_OPTS
Из самбы:
pre-start script
[ -r /etc/default/samba ] && . /etc/default/samba
Еще что ново - сценарии запуска ушли из /etc в /lib/systemd/system (я
сравнил /etc/udev/rules.d, там аналогично почти все пакеты пихают в
/lib/udev/rules.d).
Учитывая что runlevel это legacy по документации мне перестало быть понятным
как самому сделать некий сервис перманентно запускаемым при рестарте в
терминах systemd.
Видел тут статейку:
http://habrahabr.ru/company/centosadmin/blog/255845/
При желании (я сам пока не читал):
man 7 bootup
man 7 daemon
Я бы просто по старинке sysvinit написал бы и не разбирался. Они все дергают
/etc/init.d/rc в конце концов или как то эмулируют его работу...
В общем нужно адаптироваться к новому окружению ((
Вообще, я не админ, мне не требуются возможности, которые предоставляет system.d, но по-моему система дурная...
Излишне сложно и много напихано, при том, что старое вполне работало и не требовало дополнительного изучения.
Кому-то нравится, но "что-то не то" (зачем, например контроль за системой инициализации по D-Bus?).
P.S.:
К сведению:
packages.debian.org/jessie/systemd-sysv
https://wiki.debian.org/systemd
Reply to: