부팅시 활성화 된 시스템 장치가 시작되지 않음


35

나는를했습니다 systemd-unit활성화되어 내 시스템에. 문제는 재부팅 후 다시 시작되지 않는다는 것입니다. 예상대로 시작된 두 개의 다른 서비스에 따라 다릅니다.

이 서비스는 알려져 있고 활성화되어 있으며 죽었습니다.

[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)

단위 파일 :

[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

업데이트 1

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

업데이트 2

출력 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

출력 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

답변:


32

단위 파일이 수정되었습니다 :

전에:

[Install]
RequiredBy=docker.service

후:

[Install]
WantedBy=multi-user.target

그 수정 후 나는 장치를 다시 활성화하지 않았다. systemd를 재구성하는 데 필요한 것으로 나타났습니다.

$ sudo systemctl reenable flanneld
rm '/etc/systemd/system/docker.service.requires/flanneld.service'
ln -s '/usr/lib/systemd/system/flanneld.service' '/etc/systemd/system/multi-user.target.wants/flanneld.service'

2
나도 이것이 도움이되었고 그 이유를 모른다. 어쩌면 reenable내가하지 않았거나 botched하고 무언가를 가늘게 깎지 않아서 볼 수 없었던 것을 수정 했을 것입니다. 어쨌든, 재부팅 후 내 서비스를 시작하도록 구성한 두 개의 동일한 호스트 중 하나가 작동하고 다른 하나는이 작업을 수행 할 때까지 작동하지 않았습니다.
Russ Bateman

1
업그레이드로 인해 비활성화되었을 수 있습니까? 업그레이드 후 비활성화 된 의심스러운 서버가 하나 있습니다. sudo systemctl reenable rails-puma.service 가 문제를 해결했습니다
Dave Collins

1
아마도 관련이 있습니다 : unix.stackexchange.com/questions/193714/…
ThorSummoner

9

구성시이 서비스가 부팅시 시작되어야한다는 증거가 없습니다. systemd부팅시 서비스가 시작되도록 두 가지 방법으로 서비스를 활성화 할 수 있습니다.

chkconfig flanneld on

또는:

systemctl enable flanneld

사실, 첫 번째는 두 번째를 호출하는 기존의 방법, 그리고 있는지 확실하지 않습니다 chkconfig패키지가 기본으로 설치되어 있지만 사용하여 설치할 수 있습니다 apt-get또는 yum.


서비스가 활성화되었습니다. 나는 sudo systemctl enable flanneld그것을 가능하게했다.
maklemenz

실행 한 후에도 시작시 시작되지 않습니까?
nKn

재부팅 할 때마다 서비스를 수동으로 시작해야합니다. 처음 시도 할 때 오류 메시지 나 경고없이 시작됩니다.
maklemenz

1
또 다른 실패가 있어야합니다. 공식적으로 systemd에서 시작시 서비스를 활성화하는 방법은 systemctl enable servicename입니다. 대부분의 예제에는 .service명령 의 종료 도 포함 되지만 이것이 차이가 나는지는 확실하지 않습니다.
nKn

.service 접미사는 사용자가 생략하면 자동으로 추가됩니다.
mrg2k8
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.