ПРИМЕЧАНИЕ.:Здесь показано, как настроить уровень ведения журнала systemd и получить более подробную информацию об именах служб.
Чтобы определить уровень журнала systemd, вы можете использовать эту команду:
$ systemctl -pLogLevel show
LogLevel=debug
Вы можете изменить это так:
$ systemd-analyze set-log-level notice
$ systemctl -pLogLevel show
LogLevel=notice
Существуют следующие уровни:
--log-level=
Set log level. As argument this accepts a numerical log level or the
well-known syslog(3) symbolic names (lowercase): emerg, alert, crit,
err, warning, notice, info, debug.
Чтобы сделать его постоянным между перезагрузками, вы можете отредактировать его в файле конфигурации systemd:
$ grep LogLevel /etc/systemd/system.conf
#LogLevel=info
Или установите его с помощью определения файла /etc/default/grub
для GRUB_CMDLINE_LINUX
и GRUB_CMDLINE_LINUX_DEFAULT
.
GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0,115200n8 earlyprintk=ttyS0,115200 rootdelay=300 net.ifnames=0 quiet loglevel=5 rd.systemd.show_status=auto systemd.log_level=debug"
GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0,115200n8 earlyprintk=ttyS0,115200 rootdelay=300 net.ifnames=0 quiet loglevel=5 rd.systemd.show_status=auto systemd.log_level=debug"
Затем пересоберите ваши initramfs:
$ grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file...
Found linux image: /boot/vmlinuz-3.10.0-693.21.1.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-693.21.1.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-1ec1e304541e429e8876ba9b8942a14a
Found initrd image: /boot/initramfs-0-rescue-1ec1e304541e429e8876ba9b8942a14a.img
done
Когда уровень установлен на debug
, сообщения от systemd выглядят следующим образом:
$ journalctl -b | less
Jul 13 12:06:44 centos7 systemd[1]: Activating default unit: default.target
Jul 13 12:06:44 centos7 systemd[1]: Trying to enqueue job initrd.target/start/isolate
Jul 13 12:06:44 centos7 systemd[1]: Installed new job local-fs.target/start as 20
Jul 13 12:06:44 centos7 systemd[1]: Installed new job systemd-udev-trigger.service/start as 18
Jul 13 12:06:44 centos7 systemd[1]: Installed new job systemd-udevd-control.socket/start as 8
Jul 13 12:06:44 centos7 systemd[1]: Installed new job remote-fs.target/start as 38
Jul 13 12:06:44 centos7 systemd[1]: Installed new job sysroot.mount/start as 31
Jul 13 12:06:44 centos7 systemd[1]: Installed new job swap.target/start as 17
Jul 13 12:06:44 centos7 systemd[1]: Installed new job kmod-static-nodes.service/start as 21
Jul 13 12:06:44 centos7 systemd[1]: Installed new job slices.target/start as 26
Jul 13 12:06:44 centos7 systemd[1]: Installed new job systemd-journald.service/start as 9
Jul 13 12:06:44 centos7 systemd[1]: Installed new job initrd-root-fs.target/start as 30
Jul 13 12:06:44 centos7 systemd[1]: Installed new job systemd-tmpfiles-setup-dev.service/start as 19
Jul 13 12:06:44 centos7 systemd[1]: Installed new job paths.target/start as 27
Jul 13 12:06:44 centos7 systemd[1]: Installed new job initrd.target/start as 1
Jul 13 12:06:44 centos7 systemd[1]: Installed new job initrd-fs.target/start as 42
...
...
Jul 13 12:06:44 centos7 systemd[1]: dracut-pre-udev.service: cgroup is empty
Jul 13 12:06:44 centos7 systemd[1]: ConditionPathIsReadWrite=/sys succeeded for systemd-udevd.service.
Jul 13 12:06:44 centos7 systemd[1]: About to execute: /usr/lib/systemd/systemd-udevd
Jul 13 12:06:44 centos7 systemd[1]: Forked /usr/lib/systemd/systemd-udevd as 226
Jul 13 12:06:44 centos7 systemd[1]: systemd-udevd.service changed dead -> start
Jul 13 12:06:44 centos7 systemd[1]: Starting udev Kernel Device Manager...
Jul 13 12:06:44 centos7 systemd[1]: Got cgroup empty notification for: /system.slice/dracut-pre-udev.service
Jul 13 12:06:44 centos7 systemd[1]: dracut-pre-udev.service: cgroup is empty
Jul 13 12:06:44 centos7 systemd[226]: Executing: /usr/lib/systemd/systemd-udevd
Jul 13 12:06:44 centos7 systemd-udevd[226]: ctrl=4 netlink=3
В приведенном выше выводе отчетливо видны названия служб, например. systemd-journald.service
.
Направьте вывод вашей команды gpg на любую из команд grep /sed/awk, показанных ниже.
Используя GNU grep
с включенным механизмом PCRE (-P
), выберите только совпадающую часть(-o
)и получите только первое совпадение (-m1
). \K
используется, чтобы убрать не включенную часть строки.
grep -Pom1 '^ *Keygrip += +\K.*'
GNU sed
со специальной конструкцией Gnu -T
для инвертированной тестовой команды
sed -Ene 's/^ *Keygrip += +//;T;p;q'
###Or Posixly,
sed -e '/^ *Keygrip *= */!d;s///;q'
С помощью awk
вы устанавливаете разделитель полей на «один _или _больше _spc=один _или _больше _spc» и напечатайте второе поле после того, как убедитесь, что соответствующее первое поле и строка содержат ровно два поля.
awk -F' += +' '
/^ *Keygrip / && NF==2 {
print $2;exit
}'