[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: