Questions tagged «systemd»

systemd是Linux的SystemV和Upstart初始化守护程序的替代方法。它旨在提供一个更好的框架来表达服务的依赖性,允许在系统启动时并行完成更多工作,并减少Shell开销。

1
Systemd:如果“ oneshot”服务第一次失败,如何确保重试该服务?
我已经阅读了几次systemd服务联机帮助页,但是仍然无法弄清基本的systemd模式: 我想在启动时运行一次启动过程(例如docker容器或格式化驱动器),成功完成。但是,如果为此使用Type = oneshot,则无法使用Restart = on-failure,并且如果失败,则不会重试该工作。我在这里错过明显的东西吗? 我还尝试将Type = simple设置为Restart = on-failure,但是在很多情况下,我需要oneshot服务提供以下行为(从联机帮助页中): oneshot的行为类似于简单。但是,可以预期该过程必须在systemd启动后续单元之前退出。 更新: 相关的上游systemd错误。 而且我们还想要RemainAfterExit语义
18 systemd 

2
journalctl的可选单位列表
在CentOS 7服务器中,我想获取可以为其journalctl生成日志的可选单元的列表。如何更改以下代码来完成此操作? journalctl --output=json-pretty | grep -f UNIT | sort -u 在CentOS 7终端中,以上代码产生grep: UNIT: No such file or directory。 编辑: 以下Java程序将终止,而不会输出所需grep的任何输出。我如何更改内容以使Java程序除终端版本外还能工作? String s; Process p; String[] cmd = {"journalctl --output=json-pretty ","grep UNIT ","sort -u"}; try { p = Runtime.getRuntime().exec(cmd); BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())); while ((s = br.readLine()) != …
18 grep  systemd 

1
聆听日记更改
通常tail -f /var/log/messages,如果有新行,我会使用更新。 如何具有类似的功能journalctl?
18 logs  systemd 

3
chrony vs. systemd-timesyncd –作为NTP客户端有什么区别和用例?
以某种方式但并非完全基于较旧的问题“ ntpd与systemd-timesyncd-如何实现可靠的NTP同步?” ,我想问一下NTP 客户端上 chrony和systemd-timesyncd之间的区别。 我知道systemd-timesyncd是一个或多或少的ntp客户端实现,而chrony是一个完整的NTP守护程序解决方案,恰好包含一个NTP客户端。 ubuntu Bionic Beaver发行说明指出以下内容: 为了实现简单的时间同步,基本系统已经附带了systemd-timesyncd。仅需要Chrony充当时间服务器,或者如果您想要播发的广告更加准确和高效地同步。 我喜欢使用最小的预安装工具来完成这项工作的想法,并且我很确定systemd-timesyncd会在我的用例中完成这项工作,但我仍然很好奇: 两者在准确性方面的真实世界有何不同? 效率有何不同? 什么是“非简单”时间同步又需要作为NTP客户端的chronase用例?
18 systemd  ntp  chrony 

4
将_ sudo systemctl的默认编辑器更改为vim edit [unit-file] _
[在Xorg上使用gnome3和gdm的4.13.12-1-ARCH] 我已经将VISUAL和EDITOR env-vars设置为vim。同样,我确实尝试SYSTEMD_EDITOR="vim"; export SYSTEMD_EDITOR 了〜/ .bashrc,但没有成功。 通过以下方式在Arch(systemd)中修改单位文件时 $ sudo systemctl edit _unit_ 我发现自己凝视着nano。生命太短暂了,我一定要vim。我该怎么做呢 ?
18 systemd  vim  editors 

1
禁用systemd计时器单元的正确方法是哪种?
我已经成功地将一些cron作业迁移到了systemd。我遵循了一些指南,并采用了创建3个文件的标准方法: myjob.timer - systemd timer unit myjob.service - systemd service unit myjob.sh 您可能会猜到,在某个时间触发了myjob.timer,它运行myjob.service,而myjob.service依次执行myjob.sh。 我为所有计时器都设置了相同的设置,现在我看到一切正常,我想禁用myjob.timer,它只是一个测试器。 我只是做: systemctl --user disable myjob.timer 还是我还必须做: systemctl --user disable myjob.service 正确的做法是什么?我是systemd的新手,所以我想学习如何以正确的方式做事。我猜测禁用两个设备是正确的,以使系统免于多余的行李。

2
减少“正在运行停止作业”的关闭超时
我在Pi(Raspbian)上安装了node.js和pm2。PM2已配置为通过pm2 startup和它创建的init脚本启动。有时,当我重新启动时,关机会在几分钟后挂起: A stop job is running for LSB: PM2 init script (... / 5min) 每隔一段时间1我假设是PM2无法正常关闭并挂起整整5分钟。 在此系统上,我确切地知道PM2正在管理哪些应用程序,并且我真的不在乎它们是否正常关闭。 我的问题是:如何将超时时间从5分钟减少到15秒左右?在哪里配置? 我在一个论坛上读到它是/etc/systemd/system.conf中的DefaultTimeoutStopSec密钥,因此我尝试将其设置为“ 15s”,但没有效果。我也在/etc/systemd/user.conf中尝试了同样的事情,但是没有任何变化。超时仍设置为5分钟。 1我确实确实知道是什么触发了这一点,但是细节并不重要,而且效果是不可避免的。
18 systemd  reboot  lsb 

2
系统化:需要vs想要
是否有任何差别之间需要 VS 希望在目标文件? [Unit] Description=Graphical Interface Documentation=man:systemd.special(7) Requires=multi-user.target Wants=display-manager.service 谢谢
18 systemd 

2
用环境设置的可执行路径编写系统单元文件
我正在为Java应用程序编写一个systemd单元文件,我想控制用于启动它的Java版本。我的(简化)服务文件是 [Service] Type=simple EnvironmentFile=%h/Documents/apps/app/app-%i/app.cfg ExecStart=${JAVA_HOME}/bin/java ${JAVA_OPTS} -jar %h/Documents/apps/app/app-%i/myapp.jar SuccessExitStatus=143 尝试启动时,出现错误提示 Apr 28 12:43:37 rombert systemd[1613]: [/home/robert/.config/systemd/user/app@.service:7] Executable path is not absolute, ignoring: ${JAVA_HOME}/bin/java ${JAVA_OPT Apr 28 12:43:37 rombert systemd[1613]: app@1.0.0.service lacks both ExecStart= and ExecStop= setting. Refusing. 我知道这JAVA_HOME是正确设置的;如果我将ExecStart行更改为开头,/usr/bin/java然后添加一些内容,就像-DsomeOption=${JAVA_HOME}我看到的一样。 显而易见的解决方法是创建一个包装器脚本,但是我觉得它超出了使用服务文件的目的。 如何使用单元文件为Java应用程序设置JAVA_HOME?
17 systemd  java 

2
如何运行systemd用户服务以在睡眠(又称为挂起,休眠)时触发?
基于各种资料,我凑齐了~/.config/systemd/user/screenlock.service: [Unit] Description=Lock X session Before=sleep.target [Service] Environment=DISPLAY=:0 ExecStart=/usr/bin/xautolock -locknow [Install] WantedBy=sleep.target 我已经使用启用了它systemctl --user enable screenlock.service。但是在重新启动,登录,挂起和恢复运行(通过systemctl suspend并通过关闭盖子进行测试)之后,屏幕并未锁定,并且中没有任何内容journalctl --user-unit screenlock.service。我究竟做错了什么? 运行DISPLAY=:0 /usr/bin/xautolock -locknow将按预期锁定屏幕。 $ systemctl --version systemd 215 +PAM -AUDIT -SELINUX -IMA -SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ +SECCOMP -APPARMOR $ awesome --version awesome v3.5.5 (Kansas City Shuffle) • Build: Apr 11 …

3
rsyslog不记录
这是一个奇怪的问题。 我正在RHEL7 VM上测试chrony / ntp服务,并且正在重置其时间以及主机的时间。对它感到满意之后,我检查/var/log/messages并意识到它已经有一段时间没有被更改了。 现在,无论我做什么,除了重新启动rsyslog服务本身时,什么都不会记录。当我这样做时: Apr 15 13:59:43 mymachine1 rsyslogd: [origin software="rsyslogd" swVersion="7.4.2" x-pid="2847" x-info="http://www.rsyslog.com"] exiting on signal 2. Apr 15 13:59:59 mymachine1 rsyslogd: [origin software="rsyslogd" swVersion="7.4.2" x-pid="2853" x-info="http://www.rsyslog.com"] start Apr 15 14:00:11 mymachine1 rsyslogd-3000: sd_journal_get_cursor() failed: 'Cannot assign requested address' 尝试诸如“ logger test不记录”之类的东西,除了rsyslog自己的消息外,别无其他。当我手动运行rsyslog -n -N1作为参数时,我得到: rsyslogd: version 7.4.2, …


2
hostnamectl命令的意义是什么?
与编辑/ etc / hostname或与之相关的地方相反? 一定有一个很好的理由(我希望)-总的来说,我更喜欢“旧”方式,因为所有方式都是文本文件。我并不是想引起争议-我真的很想知道,并自己决定这是否是一个很好的理由。谢谢。


1
如何创建一个systemd目标?
在大量搜索大量帖子,Youtube视频以及有关systemd的“文档”之后,我仍然茫然不知所措。 链接(https://wiki.archlinux.org/index.php/systemd#Create_custom_target)很有希望,但是(对我而言)有点模糊。 题 如何创建一个自定义的systemd目标(即foo.target),以便可以使用选择的.service单元启动? 例 系统引导default.target(“ foo.target”的符号链接) “ foo.target”仅启动准系统X服务器和GUI程序,例如“ gvim”。 原因 我只是想为快速启动一个X程序创建一个自定义目标。我很乐意排除所有不需要的服务。 提前致谢!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.