Mam systemd-unit
w swoim systemie, który jest włączony. Problem polega na tym, że nie uruchamia się ponownie po ponownym uruchomieniu. Zależy to od dwóch innych usług, które są uruchamiane zgodnie z oczekiwaniami.
Usługa jest znana, włączona i nie działa:
[centos@ansible-kube-4 ~]$ sudo systemctl status flanneld
flanneld.service - Flanneld overlay address etcd agent
Loaded: loaded (/usr/lib/systemd/system/flanneld.service; enabled)
Active: inactive (dead)
Plik jednostki:
[centos@ansible-kube-4 ~]$ cat /usr/lib/systemd/system/flanneld.service
[Unit]
Description=Flanneld overlay address etcd agent
After=network.target
After=etcd.service
[Service]
Type=notify
Restart=always
RestartSec=3
EnvironmentFile=/etc/sysconfig/flanneld
EnvironmentFile=-/etc/sysconfig/docker-network
ExecStart=/usr/bin/flanneld -etcd-endpoints=${FLANNEL_ETCD} -etcd-prefix=${FLANNEL_ETCD_KEY} $FLANNEL_OPTIONS
ExecStartPost=/usr/libexec/flannel/mk-docker-opts.sh -k DOCKER_NETWORK_OPTIONS -d /run/flannel/docker
[Install]
WantedBy=multi-user.target
Aktualizacja 1
Wyjście dmesg:
$ dmesg | grep systemd
[ 1.312165] systemd[1]: systemd 208 running in system mode. (+PAM +LIBWRAP +AUDIT +SELINUX +IMA +SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ)
[ 1.317238] systemd[1]: Detected virtualization 'kvm'.
[ 1.319597] systemd[1]: Running in initial RAM disk.
[ 1.323489] systemd[1]: No hostname configured.
[ 1.324874] systemd[1]: Set hostname to <localhost>.
[ 1.327570] systemd[1]: Initializing machine ID from KVM UUID.
[ 1.389047] systemd[1]: Expecting device dev-disk-by\x2duuid-a78bb152\x2de525\x2d4f0e\x2d961a\x2dbf6147ac7d3e.device...
[ 1.394577] systemd[1]: Starting -.slice.
[ 1.396820] systemd[1]: Created slice -.slice.
[ 1.397990] systemd[1]: Starting System Slice.
[ 1.400212] systemd[1]: Created slice System Slice.
[ 1.401503] systemd[1]: Starting Slices.
[ 1.403556] systemd[1]: Reached target Slices.
[ 1.404756] systemd[1]: Starting Timers.
[ 1.406834] systemd[1]: Reached target Timers.
[ 1.408042] systemd[1]: Starting Dispatch Password Requests to Console Directory Watch.
[ 1.410065] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[ 1.413402] systemd[1]: Starting Paths.
[ 1.415399] systemd[1]: Reached target Paths.
[ 1.416574] systemd[1]: Starting Journal Socket.
[ 1.418894] systemd[1]: Listening on Journal Socket.
[ 1.420242] systemd[1]: Started dracut ask for additional cmdline parameters.
[ 1.422150] systemd[1]: Starting dracut cmdline hook...
[ 1.424870] systemd[1]: Started Load Kernel Modules.
[ 1.426124] systemd[1]: Starting Journal Service...
[ 1.429731] systemd[1]: Started Journal Service.
[ 1.692884] systemd-udevd[213]: starting version 208
[ 2.621300] systemd-journald[90]: Received SIGTERM
[ 2.968711] systemd[1]: Successfully loaded SELinux policy in 274.569ms.
[ 3.023076] systemd[1]: Relabelled /dev and /run in 20.031ms.
[ 3.365195] systemd-udevd[382]: starting version 208
[ 3.482910] systemd-journald[377]: Received request to flush runtime journal from PID 1
Aktualizacja 2
Wyjście chkconfig
:
sudo chkconfig
Note: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd configuration.
If you want to list systemd services use 'systemctl list-unit-files'.
To see services enabled on particular target use
'systemctl list-dependencies [target]'.
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Wyjście systemctl list-dependencies flanneld
:
flanneld.service
├─system.slice
└─basic.target
├─microcode.service
├─rhel-autorelabel-mark.service
├─rhel-autorelabel.service
├─rhel-configure.service
├─rhel-dmesg.service
├─rhel-loadmodules.service
├─paths.target
├─slices.target
│ ├─-.slice
│ └─system.slice
├─sockets.target
│ ├─dbus.socket
│ ├─rpcbind.socket
│ ├─systemd-initctl.socket
│ ├─systemd-journald.socket
│ ├─systemd-shutdownd.socket
│ ├─systemd-udevd-control.socket
│ └─systemd-udevd-kernel.socket
├─sysinit.target
│ ├─dev-hugepages.mount
│ ├─dev-mqueue.mount
│ ├─kmod-static-nodes.service
│ ├─proc-sys-fs-binfmt_misc.automount
│ ├─sys-fs-fuse-connections.mount
│ ├─sys-kernel-config.mount
│ ├─sys-kernel-debug.mount
│ ├─systemd-ask-password-console.path
│ ├─systemd-binfmt.service
│ ├─systemd-journal-flush.service
│ ├─systemd-journald.service
│ ├─systemd-modules-load.service
│ ├─systemd-random-seed.service
│ ├─systemd-sysctl.service
│ ├─systemd-tmpfiles-setup-dev.service
│ ├─systemd-tmpfiles-setup.service
│ ├─systemd-udev-trigger.service
│ ├─systemd-udevd.service
│ ├─systemd-update-utmp.service
│ ├─systemd-vconsole-setup.service
│ ├─cryptsetup.target
│ ├─local-fs.target
│ │ ├─-.mount
│ │ ├─rhel-import-state.service
│ │ ├─rhel-readonly.service
│ │ ├─systemd-fsck-root.service
│ │ └─systemd-remount-fs.service
│ └─swap.target
└─timers.target
└─systemd-tmpfiles-clean.timer
reenable
poprawiłem coś, czego nie zrobiłem lub spartaczyłem i nie mogłem zobaczyć, ponieważ nie zmrużyłem wystarczająco mocno. W każdym razie z dwóch identycznych hostów, na których konfigurowałem, aby moja usługa pojawiła się po restarcie, jeden działał, a drugi nie, dopóki tego nie zrobiłem.W twojej konfiguracji nie znajduję dowodów na to, że ta usługa powinna zostać uruchomiona podczas rozruchu.
systemd
umożliwia dwa sposoby włączenia usługi, aby była ona uruchamiana podczas rozruchu:Lub:
W rzeczywistości pierwszy jest starszym sposobem wywoływania drugiego i nie jestem pewien, czy
chkconfig
pakiet jest instalowany domyślnie, ale można go zainstalować za pomocąapt-get
lubyum
.źródło
sudo systemctl enable flanneld
to umożliwiałem.systemctl enable servicename
. Większość przykładów zawiera także.service
zakończenie w poleceniu, ale nie jestem pewien, czy to powinno coś zmienić.