Systemd Status P7: различия между версиями
Нет описания правки |
Нет описания правки |
||
Строка 61: | Строка 61: | ||
|bind || {{Нет}} || || | |bind || {{Нет}} || || | ||
|- | |- | ||
|bluez || bluetooth.service || | |bluez || bluetooth.service || || | ||
|- | |- | ||
|blcr || {{Нет}} || || {{Нет}} зачем нужен сервис, если для него нет модулей ядра в репозитории, т.е. сервис заранее не рабочий. | |blcr || {{Нет}} || || {{Нет}} зачем нужен сервис, если для него нет модулей ядра в репозитории, т.е. сервис заранее не рабочий. |
Версия от 18:11, 23 ноября 2012
Легенда к таблице
Поле "Сервис"
- имя пакета, в котором имеется rc-скрипт
Поле "Service(unit)"
Поле "socket"
- пустое: активация по сокету не целесообразно и не доступно
- имеет значение
: целесообразно добавить поддержку активации по запросу к сервису
- записано имя .socket юнита: активация по запросу имеется и используется
Поле "Комментарии"
- если в поле стоит
: сервис на данный момент работает не корректно с systemd
- комментарии к созданию unit-файла/сопутствующих файлов и сопутствующая информация
Рекомендации
- по возможности используйте метод запуска simple/dbus. Если у сервиса имеется режим работы foreground с включённым debug, лучше написать простой патч, который добавляет новую опцию запуска, без включения debug (как, например, реализовано в openntpd)
- если можно использовать socket-активацию - используйте. Часть сервисов не нужны непосредственно во время запуска системы или сразу после окончания загрузки (например: CUPS, alteratord, alterator-fbi)
- имена для unit-файлов должны совпадать с таковыми именами сервиса в /etc/init.d (не учитывая расширение): /etc/init.d/smb -> smb.service, lm_sensors3 -> lm_sensors3.service. Иначе systemd будет считать unit и rc-скрипт как два разных сервиса. Если имена файлов различаются, должен быть симлинк с именем аналогичным имени сервиса в /etc/init.d (не учитывая расширение): /etc/init.d/bluetoothd - bluetooth.service(без "d" вконце) -> bluetoothd.service
- не используйте жесткие зависимости, типа Require, только если такой тип зависимости действительно нужен
- нельзя запаковывать в unit запуск rc-скрипта
- старайтесь следовать правилу: unit поставляемый из "коробки" обеспечивает дефолтный запуск сервиса, все отличные варианты запуска обеспечиваются самим пользователем, перенеся unit в /etc/systemd/system и изменив по желанию. Соответственно не надо в дефолтном юните обеспечивать все возможные варианты запуска
- для передачи второстепенных параметров при запуске сервиса, используйте директиву EnvironmentFile или Environment
- в spec-файле используйте директиву %_unitdir
- все вопросы можно задать в devel@
Текущее состояние основных компонентов
Сервис | service(unit) | socket | Комментарии |
---|---|---|---|
389-Fedora-DS | ![]() |
||
acct | ![]() |
||
acpid | acpid.service | ||
alterator | ![]() |
![]() |
|
anacron | ![]() |
Type=oneshot; в юнит прописать настройки на CPULimit и IOLimit | |
atftp | ![]() |
не запакованы файлы из /var/run (tmpfiles.d) | |
apache-base | ![]() |
||
apache2 | httpd2.service | запускается с неопределённой вероятностью | |
apache2-cache clean | ![]() |
rc-скрипт не корректный: не верная директива pidfile | |
autofs | ![]() |
||
audit | ![]() |
||
arpwatch | ![]() |
||
Avahi | avahi-daemon.service | avahi-daemon.socket | |
bacula-(client,director,etc) | ![]() |
![]() | |
bind | ![]() |
||
bluez | bluetooth.service | ||
blcr | ![]() |
![]() | |
bridge-utils | ![]() |
Type=oneshot | |
conserver | ![]() |
- | Type=simple (без -d), подумать как реализовать запуск по запросу |
console-scripts (consolesaver) | ![]() |
Type=oneshot; подумать, что делать с keytable | |
collectd | ![]() |
![]() | |
crond | crond.service | ||
cryptsetup | + | используется генеретор unit файлов из состава systemd | |
CUPS | cups.service | cups.socket | полная поддержка; запуск по требованию; добавить в юнит Wants на avahi-daemon.socket (или .service) |
dhcp-server (dhcpd) | ![]() |
||
dnsmasq | ![]() |
Type=simple (запуск с параметром -k); Файл rc-скрипт большой, необходимо при написании юнита правильно разбить на части | |
dovecot | dovecot.service | dovecot.socket | ошибка в скрипте настройки (не относится к systemd); запуск по требованию |
ebtables | ![]() |
Type=oneshot, подумать как реализовать аналог "service ebtables save" | |
etcnet | ![]() |
большой скрипт, подумать как перенести на systemd (сейчас в systemd отрабатывается вызовом /etc/init.d/network) | |
ethtool | ![]() |
Type=oneshot (данный сервис вообще нужен?) | |
freeipmi-bmc-watchdog (bmc-watchdog) | ![]() |
Type=simple, правильно написать юнит, что бы не конфликтовать с настройками для sysvinit, т.к. /etc/sysconfig/bmc-watchdog - общий | |
freenx-server | ![]() |
Type=forking, при написании юнита использовать опции сервера --stop, --start, etc. | |
ganeti | ![]() |
||
ganglia-gmetad | ![]() |
Type=forking (или пропатчить для отключения "демонизации" ) | |
ganglia-gmond | ![]() |
Type=simple; на данный момент падает с сообщением "stack smashing detected" | |
greylistd | ![]() |
Type=simple | |
gpm | ![]() |
||
hddtemp | ![]() |
![]() | |
heartbeat | ![]() |
необходимо запаковать каталоги в /var/run/heartbeat (tmpfiles.d). Возможно пропатчить ldirectord для отключения "демонизации". На данный момент ldirectord не работает, вылетает с ошибкой: Can't locate LWP/UserAgent.pm in @INC. ![]() | |
ifplugd | ![]() |
Type=forking; Возможно пропатчить для отключения "демонизации" | |
ipsec-tools (racoon) | ![]() |
Type=simple (опция -F) | |
iptables/iptables-ipv6 | ![]() |
Type=oneshot; продумать как реализовать аналог service save | |
klogd | ![]() |
journald умеет читать "ядрённые" логи без помощи klogd. Возможно стоит отказаться от klogd | |
Krb5 | kadmin.service, kprop.service, krb5kdc.service | ? | желательно изменить kprop.service на режим работы, аналогичному inetd (см. sshd@.service);krb5kdc.service прибито расположение PID файла, хотя в строке запуска используется переменная описанная в sysconfig/krb5kdc - надо поправить |
libkrb5 | ![]() |
Type=oneshot | |
lm_sensors3 | ![]() |
Type=oneshot | |
maui | ![]() |
Type=forking (можно пропатчить для отключения "демонизации"). Правильно, что pid-файл находится в /var/spool/maui/ ?? | |
mdadm | mdadm.service | ||
microcode_ctl | ![]() |
Оно вообще надо?? | |
monit | ![]() |
Type=simple (опция -I). Проверить, что monit будет корректно перезапускать сервисы при работающем systemd | |
multipath-tools | ![]() |
Type=simple (опция -d) | |
MySQL | ![]() |
||
NetworkManager | Networkmanager.service, NetworkManager-wait-online.service | ||
nginx | ![]() |
можно запускать с "daemon=off", правда тогда надо подумать о разделении конфигов | |
NFS Lock | nfslock.service | ![]() | |
nss-ldapd | nslcd.service | ![]() |
|
ntpd | ![]() |
продумать правильную реализацию юнита (chroot, ntpdate) | |
ocfs2-tools | ![]() |
необходимо запаковать каталог /var/run/o2cb (tmpfiles.d). Между двумя юнитами требуется правильно расставить зависимости | |
openntpd | ntpd.service | немного подправить директиву EnvironmentFile в юните (можно его заставить "говорить" в лог меньше?) | |
openldap | slapd.service | ? | можно обсудить вопрос об использовании чрута средствами systemd |
openvpn | ![]() |
необходимо запаковать директорию /var/run/openvpn | |
p0f | ![]() |
Type=simple (без опции -d) | |
policycoreutils-mcstransd | ![]() |
![]() | |
policycoreutils-restorecond | ![]() |
Type=forking (можно пропатчить для отключения "демонизации") | |
postfix | ![]() |
||
postgresql | ![]() |
? | с ldv@ обсуждалось, необходимо переписывать скрипты запуска, как sysv, так и писать правильный юнит-файл |
pptpd | ![]() |
Type=simple (опция -f) | |
qemu-kvm-el | ![]() |
Type=oneshot; в rc-файле указана директива pidfile, хотя она не нужна | |
runawfe-botstation | ![]() |
rc-файл не корректный, не совпадают параметры: pidfile и PIDFILE | |
samba | smbd.service, nmbd.service | ? | необходимо изменить unit-файл и поменять тип запуска сервиса на "simple" |
scanlogd | ![]() |
Общее: PID не создаётся, приложение не проверяет на наличие уже запущенной копии | |
smartd | smartd.service | ||
slurm-master | ![]() |
Type=forking (можно пропатчить для отключения "демонизации") | |
slurm-slave | ![]() |
Type=simple (опция -D) | |
slurm-slurmdbd | ![]() |
Type=forking (можно пропатчить для отключения "демонизации") | |
spamd | ![]() |
? | ![]() |
spawn-fcgi | ![]() |
![]() | |
spice-vdagent | spice-vdagentd.service | - | изменить тип запуска с forking на simple и прописать в ExecStart ключ "-x" |
squid | squid.service | ? | |
squidmill | ![]() |
Type=forking (можно пропатчить для отключения "демонизации") | |
sshd | sshd.service | ||
sysfsutils | ![]() |
Type=oneshot (оно надо сейчас?) | |
sysstat | ![]() |
Type=oneshot | |
syslogd | ![]() |
![]() |
![]() |
torque-mom | ![]() |
PID файл находится в /var/spool/torque/mom_priv/ - это правильно? Type=forking (можно пропатчить для отключения "демонизации") | |
torque-scheduler | ![]() |
PID файл находится в /var/spool/torque/scheduler_priv/ - это правильно? Type=forking | |
torque-server | ![]() |
PID файл находится в /var/spool/torque/server_priv/ - это правильно? Type=forking (можно пропатчить для отключения "демонизации"); rc-скрипт зависает | |
ulogd | ![]() |
? | |
update-wms | ![]() |
Type=oneshot | |
virtualbox-common | ![]() |
Type=oneshot | |
vzctl | ![]() |
Type=oneshot | |
wpa_supplicant | ![]() |
Type=dbus | |
xCAT-server | ![]() |
Type=forking | |
xinetd | ![]() |
||
zabbix-agent | ![]() |
необходимо запаковать каталог /var/run/zabbix/ (tmpfiles.d); Type=forking |
Команда для вычисления списка пакетов, в которых есть init-файлы, но нет unit-файлов
comm -23 <(grep -h '^/etc/rc\.d/init\.d/' /ALT/Sisyphus/*/base/contents_index |cut -f2 |sort -u) <(grep -h '^/lib/systemd/system/' /ALT/Sisyphus/*/base/contents_index |cut -f2 |sort -u)