সক্ষম হওয়া সিস্টেমড ইউনিট বুট থেকে শুরু হয় না


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

এই সংশোধনীর পরে আমি ইউনিটটি পুনরায় চালু করতে পারিনি। প্রমাণিত হয়েছে যে পুনরায় কনফিগার করার জন্য সিস্টেমডের জন্য এটি প্রয়োজন:

$ 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আমি এমন কিছু সংশোধন করেছি যা আমি করিনি বা করলাম না এবং দেখতে পেলাম না কারণ আমি যথেষ্ট পরিমাণে স্কিনিং করছিলাম না। যাইহোক, দুটি অভিন্ন হোস্টের যেটিতে আমি আমার পরিষেবাটি পুনরায় বুট করার পরে সামনে আনার জন্য কনফিগার করেছিলাম, তার মধ্যে একটি কাজ করেছিল এবং অন্যটি এটি না করা পর্যন্ত না করে।
রাশ ব্যাটম্যান

1
এটি কি কোনও আপগ্রেডের দ্বারা অক্ষম হওয়া সম্ভব? আমার একটি সন্দেহজনক সার্ভার ছিল যেখানে এটি একটি আপগ্রেডের পরে অক্ষম করা হয়েছিল ... sudo systemctl পুনর্নবীকরণযোগ্য রেল-puma.service সমস্যাটি সমাধান করেছে
ডেভ কলিন্স

1
প্রাসঙ্গিক হতে পারে: unix.stackexchange.com/questions/193714/…
থারস্মমনার

9

আমি আপনার কনফিগারেশনের কোনও প্রমাণ পাই না যে বুট সময়ে এই পরিষেবাটি শুরু করা উচিত। systemdকোনও পরিষেবা সক্ষম করার দুটি উপায়ের অনুমতি দেয় যাতে এটি বুট সময়ে শুরু হয়:

chkconfig flanneld on

বা:

systemctl enable flanneld

প্রকৃতপক্ষে, দ্বিতীয়টি দ্বিতীয়টি কল করার একটি উত্তরাধিকার পদ্ধতি এবং আমি chkconfigপ্যাকেজটি ডিফল্টরূপে ইনস্টল করা হয়েছে কিনা তা নিশ্চিত নই , তবে আপনি এটি ব্যবহার করে apt-getবা ইনস্টল করতে পারেন yum


পরিষেবাটি সক্ষম করা হয়েছে। আমি sudo systemctl enable flanneldএটি সক্ষম করতে ব্যবহৃত ।
maklemenz

এটি চালানোর পরে এটি এখনও শুরুতে শুরু হয় না?
nkn

প্রতিটি রিবুটের পরে আমাকে ম্যানুয়ালি পরিষেবাটি শুরু করতে হবে। এটি প্রথম চেষ্টা এবং কোনও ত্রুটি বার্তা বা সতর্কতা ছাড়াই শুরু হয়।
maklemenz

1
অন্য কিছু ব্যর্থ হতে হবে। সরকারীভাবে, সিস্টেমডে স্টার্টআপে কোনও পরিষেবা সক্ষম করার উপায়টি systemctl enable servicename। বেশিরভাগ উদাহরণে .serviceকমান্ডের অবসানও অন্তর্ভুক্ত থাকে তবে আমি নিশ্চিত নই যে এটির কোনও পার্থক্য করা উচিত।
nkn

ব্যবহারকারী দ্বারা বাদ দেওয়া হলে .service প্রত্যয়টি স্বয়ংক্রিয়ভাবে যুক্ত হয়।
mrg2k8
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.