Articles of systemd

如何在不启动的情况下自动启动debian文件系统上的服务?

我想有一个自定义的服务,我已经放在/ lib / systemd / system开机启动,但是我只知道如何运行 systemctl enable myservice.service 但我希望能够在不启动到实际文件系统的情况下执行此操作,以便我可以自动部署此configuration。

系统计时器不启动其服务单元

情况 我已经写了一个自定义的systemd服务单元和它的伴随shell脚本来从Let's Encrypt中更新一个证书。 当我运行systemctl start letsencrypt-example_com.service时,一切正常。 我希望它每60天自动运行一次,所以我写了一个systemd定时器单元。 问题 我跑了systemctl enable letsencrypt-example_com.timer然后systemctl start letsencrypt-example_com.timer 。 计时器似乎开始,但不是服务。 # systemctl status letsencrypt-example_com.timer Created symlink from /etc/systemd/system/timers.target.wants/letsencrypt-example_com.timer to /etc/systemd/system/letsencrypt-example_com.timer. # systemctl start letsencrypt-example_com.timer # systemctl list-timers –all # systemctl list-timers NEXT LEFT LAST PASSED UNIT ACTIVATES n/an/a ven. 2016-05-06 13:10:13 CEST 1h 51min ago letsencrypt-example_com.timer letsencrypt-example_com.service # systemctl status […]

如何debugging系统单元ExecStart

我很好奇是否可以打印完全扩展的ExecStart/ExecStop命令行。 考虑下面的例子: ExecStart=/usr/bin/java $OPTS_COMMON $OPTS $OPTS_LOG $OPTS_DEBUG some.class.Start –param1 ${PARAM1} –param2 ${PARAM2} 我有很长的命令行涉及到很多环境variables。 如果某些variables出错(例如通过插入式configuration),服务可能根本无法启动。 然而,我没有看到全面扩大与取代的envs行,我很难找出什么是错的。 我没有使用谷歌search这一点,迄今唯一的可能性,我发现是修改单元文件运行/usr/bin/echo而不是服务本身。 但是这有点令人厌烦。 或者更烦人的解决scheme – 逐个检查每个环境variables。 有没有办法强制systemd向我展示实际上试图运行的东西?

系统实例名称(%i)在ExecStart中不起作用

出于某种原因,systemd不会用ExecStart中的实例名称replace%i或%I /systemd/system/service/[email protected] [Unit] Description=Foo service for %I [Service] User=keith ExecStart=/path/to/foo/%i/food … /path/到/富/酒吧/食品 #/bin/bash node /path/to/foo/bar/bard.js 然后我运行: $ sudo systemctl daemon-reload $ sudo systemctl start foo@bar $ sudo systemctl status foo@bar ● [email protected] – Foo service for bar Loaded: loaded (/etc/systemd/system/[email protected]; disabled; vendor preset: enabled) Active: failed (Result: exit-code) since Fri 2016-09-30 19:07:02 EDT; 6s ago […]

当且仅当openvpn由systemd运行时,openvpn post-up脚本失败并且“操作不允许”

我有这个由openvpn运行的后续脚本: #!/bin/bash echo "I am: `whoami`" echo "Moving interface into the netns" ip link set dev "$1" up netns hydrogenvpn mtu "$2" echo "Listing" ip netns ls echo "test" ip netns exec hydrogenvpn cat /tmp/foobar 如果我用这些命令运行openvpn: service openvpn start ,/ systemctl start [email protected] /etc/init.d/openvpn start service openvpn start /etc/init.d/openvpn start , systemctl start [email protected] ,我在我的日志中得到这个: […]

有没有办法通过systemd控制文件系统的访问?

所以我深入了解了systemd的复杂性,并且能够用cpu,io和内存等cgroups来度量资源。 还有一种方法可以控制进程可以使用systemd访问的目录吗? 例如, /usr/bin通常标记为o+rX ,并且我希望Web服务器进程被locking在该目录之外。 已经有相当多的软件漏洞可以从磁盘读取任意文件,这将增强安全性的分层方法。 我相信这可以用一些真正的文件系统权限来完成,但是想知道是否有更好的方法。 谢谢服务器故障!

使用systemd服务单元的Restart&RestartSec还是使用systemd定时器单元更好?

我有一些定期运行的内部自动化脚本。 一个是每五分钟一个,另一个是每分钟。 他们并不需要在点上跑; 例如我不在乎他们是在12:00,12:05等还是在12:03,12:08等运行,我只需要一个稳定的时间间隔。 目前,我有crontab以指定的时间间隔运行这些脚本。 但是,在同一台机器上,我也有自定义的内部systemd服务单元文件。 我很好奇将脚本移动到systemd服务单元和定时器文件,还是使用带有Restart和RestartSec指令的systemd服务单元文件更好。 让我知道如果我需要重新措辞或如果我不清楚。 具体来说, systemd.service单元的定义将Restart=always和RestartSec=300翻译为“每隔五分钟总是运行一次而忽略上一次运行的退出代码”的同义词。 但是,也有systemd.timer单位可以configuration做相同的,但可能与特定的退出代码,如只成功退出。 我正在寻找两者的优点和缺点。 谢谢!

Debian Jessie UpStart / Systemd / SysV不再重启

我已经在安装了Upstart的Jessie服务器上做了一些testing,并用SysVreplace它。 在此之后,我再也无法重新启动。 root@amoo-001:~# reboot Failed to talk to init daemon. root@amoo-001:~# systemctl reboot Failed to get D-Bus connection: Unknown error -1

更改特定磁盘的I / O调度程序

我想永久更改Fedora 20上特定磁盘的I / O调度程序。根据我的发现,这可以通过以root身份执行以下shell行来实现: echo {SCHEDULER-NAME}> / sys / block / {DEVICE-NAME} / queue / scheduler 但是,重新启动后,更改将丢失。 看来,实现我想要的是一个意思是创build一个systemd服务,但我完全丢失,因为它必须执行磁盘安装后。 有人可以帮我写这样一个系统服务吗? 任何其他可行的解决scheme也是受欢迎的。

CentOS 7.1 – 恢复顶级和服务的旧function

我最近安装了一台全新的CentOS 7.1服务器。 我注意到CentOS 6.7的一些不同之处,我希望有一种方法可以恢复到某些事物的旧观点。 例如: 问题1: top Top命令以不同的方式显示数据。 例如: 新的顶视图: top – 00:27:45 up 4:58, 1 user, load average: 0.08, 0.50, 0.89 Tasks: 155 total, 2 running, 153 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 1.1 sy, 0.0 ni, 98.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 4047624 total, […]