Questions tagged «systemd»

systemd是传统Linux init的现代替代品。它的主要功能包括表达服务之间的依赖关系和主动启动服务并行化的能力。

3
在Ubuntu 15.04上使用systemd启动docker-compose
我有一个想通过systemd控制的docker-compose项目。在暴发户中,我将使用如下所示的脚本: description "Start/Stop server" author "Jim Cortez" start on filesystem and started docker stop on runlevel [!2345] respawn limit 3 240 pre-start script # wait (if necessary) for our docker context to be accessible while [ ! -f /projects/my_server/docker-compose.yml ] do sleep 1 done /usr/local/bin/docker-compose -f /projects/my_server/docker-compose.yml up -d end …


1
Debian 9服务器在auth.log中没有sshd
在我的其中一台服务器Debian 9上,没有来自sshdin的输出/var/log/auth.log。实际上,如果我ag sshd在中进行操作/var/log,就不会出现。唯一的auth.log是systemd-logind。实际上,几乎所有的日志消息都来自systemd,这令人怀疑。只有少数零星的东西。 这是我的/etc/rsyslog.conf(减去评论)(应为默认值): module(load="imuxsock") # provides support for local system logging module(load="imklog") # provides kernel logging support $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat $FileOwner root $FileGroup adm $FileCreateMode 0640 $DirCreateMode 0755 $Umask 0022 $WorkDirectory /var/spool/rsyslog $IncludeConfig /etc/rsyslog.d/*.conf auth,authpriv.* /var/log/auth.log *.*;auth,authpriv.none -/var/log/syslog daemon.* -/var/log/daemon.log kern.* -/var/log/kern.log lpr.* -/var/log/lpr.log mail.* -/var/log/mail.log user.* -/var/log/user.log mail.info -/var/log/mail.info …

1
等待服务正常退出,然后关闭机器/重新启动
您如何编写在计算机关闭或重新启动后正常关闭的systemd服务?特别是,它应该延迟机器关闭,直到正常退出为止。 我有一个需要10秒钟才能关闭的服务:/usr/local/bin/shutdowntest.sh: #!/bin/bash SHUTDOWN=0 SHUTDOWN_TIME=10 TRAPPED_SIGNAL= function onexit() { TRAPPED_SIGNAL=$1 SHUTDOWN=1 } for SIGNAL in SIGINT SIGTERM SIGHUP SIGPIPE SIGALRM SIGUSR1 SIGUSR2; do trap "onexit $SIGNAL" $SIGNAL done echo >&2 "shutdowntest running" while ((!SHUTDOWN || SHUTDOWN_TIME>0)); do if [[ -n "$TRAPPED_SIGNAL" ]]; then echo >&2 "shutdowntest received signal $TRAPPED_SIGNAL" TRAPPED_SIGNAL= …
9 systemd 

1
系统计时器未启动其服务单元
情况 我已经编写了一个定制的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/a n/a ven. 2016-05-06 13:10:13 CEST 1h 51min ago letsencrypt-example_com.timer letsencrypt-example_com.service # …
9 systemd 

2
如何预测systemd的关机顺序?
当我彻底关闭整个系统时,是否有办法systemd告诉我关闭服务的大致顺序?由于systemd将并行关闭设备,因此,我很高兴无法知道确切的顺序,但是了解systemd关闭顺序上将施加哪些约束仍然很有帮助,最好是采用某种易于理解的可视化方法。 这样做的动机是,对于服务文件的开发和调试,提前获得此预测列表要方便得多,而不是必须进行真正的关机然后重新启动并在每次我想确定的时候检查日志对服务单元文件的更改或systemd配置的其他方面的影响将对关机顺序产生什么影响。 我希望有类似的东西 systemctl list-dependencies --before shutdown.service 会完成这项工作,但只会发出: shutdown.service

2
OpenVPN和systemd-resolved
如何将通过openvpn服务器推送的dns与systemd-resolved一起使用? 在我决定“升级”到systemd-networked之前。我可以使用一些openvpn-resolv-conf脚本变体来调用resolvconf,以在成功建立vpn隧道时管理/etc/resolv.conf中的条目。 这将使我能够解析VPN隧道远程端的名称。 现在,由systemd-resolved管理/run/systemd/resolved/resolv.conf,是否可以将通过openvpn连接推送的DNS自动添加到用于解析的名称服务器列表中?

2
这个变量转义在systemd单位文件中如何工作?
对于CoreOS上运行的服务器实例,我有一个非常简单的单位文件,可用于发现伙伴服务。单位文件如下所示: [Unit] Description=Discovery for frontend server (instance %i) BindsTo=frontend@%i.service After=frontend@%i.service [Service] EnvironmentFile=/etc/environment ExecStart=/usr/bin/bash -c ' \ while true; do \ export PORT=$(docker port frontend%i 80 | sed s/.*://); \ etcdctl set /services/frontend/%i "${COREOS_PRIVATE_IPV4}:$PORT" --ttl 60; \ sleep 45; \ done' ExecStop=/usr/bin/etcdctl rm /services/frontend/%i [X-Fleet] MachineOf=frontend@%i.service 效果很好,但是花了我很多时间才能进入此阶段,因为如果我将其更改为etcdctl: etcdctl set /services/frontend/%i "${COREOS_PRIVATE_IPV4}:${PORT}" …
9 bash  systemd  coreos 


1
是否可以覆盖systemd单位文件来创建模板单位文件?
我知道systemd提供了一种出色的机制来覆盖程序包提供的单元文件,以影响服务配置/行为。通常使用以下命令完成此操作 sudo systemctl edit <unitfile> 在创建一个覆盖conf文件 /etc/systemd/system/<unitfile.d>/ Systemd还提供了一种单独的机制来定义模板单元文件,并将其实例化以在运行时创建实例特定的单元。这需要将模板文件命名为 <servicename>@.service 然后实例化为 systemctl start <servicename>@<instancename> 现在,我遇到了一种情况,我想将包提供的服务作为多个单元实例运行。我想避免创建自己的模板单元文件,因此我尝试查看是否可以重写软件包提供的单元文件来创建模板单元文件。 根据我的理解,由于模板单位文件的命名约定与常规单位文件不同,因此我认为无法通过将模板文件放在/ etc / systemd / system中来覆盖软件包提供的单位文件。 有什么明确的方法可以实现我的目标吗? 特定方案:grafana软件包安装grafana-server.service单位文件。我想在我的机器上运行grafana的两个实例-DEV和STG分别一个。我已经能够做到这一点: 修改grafana-server.service文件(使用%I设置文件夹位置和文件路径) 将修改后的grafana-server.service重命名为grafana-server @ .service 使用以下命令启动grafana实例: sudo systemctl start grafana-server@dev 和 sudo systemctl start grafana-server@stg 但是,这断开了grafana提供的服务单元文件的链接,并且如果它们在我升级时增强了服务文件,则需要再次重做此活动。我的目标是避免这种直接依赖性,而是将其转换为替代依赖性。 有什么想法吗?
8 linux  systemd 

1
可以用一个图形卡/两个头对系统进行多座吗?
我想使用Ubuntu Xenial 16.04设置多座配置。 经过一些研究,看来现在的方法是通过“ loginctl”调用进行系统化。(例如,在这里看到)。 在因为我目前不需要材料(手头只有一个键盘)而深入研究本教程之前,我想知道是否有可能仅使用一张具有两个输出,HDMI和DVI。看来需要两张卡,但我想确定。 谢谢

1
systemd的journalctl:如何按消息过滤?
journalctl看起来像是查看日志的好工具,但是我仍然停留在一个简单的问题上:我想查看所有包含短语的cron消息update-ipsets。 我当然可以做到 journalctl -u cron.service | grep update-ipsets 但随后您将失去journalctl输出的所有其他好处(颜色编码,自动分页,实时查看等) 我试过了: journalctl -u cron.service MESSAGE=update-ipsets journalctl -u cron.service "MESSAGE=*update-ipsets*" journalctl -u cron.service "MESSAGE=.*update-ipsets.*" journalctl -u cron.service "MESSAGE=/.*update-ipsets.*/" 而你不想实验击中tab后MESSAGE=-挂起的(zsh的/ Debian的杰西)壳Ctrl-C都于事无补! 我有点不敢相信它没有内置此基本功能,所以我确定我一定错过了什么吗? 谢谢。

1
如何使用systemd在Linux中适当地永久启用IP转发?
我尝试启用IP转发(间enp0s3和tun0接口),并写net.ipv4.ip_forward = 1在/etc/sysctl.conf。重新启动后,我有 $ cat /proc/sys/net/ipv4/ip_forward 1 但是转发仍然无法正常工作。我尝试添加net.ipv4.conf.default.forwarding=1在/etc/sysctl.conf。现在重启后 $ cat /proc/sys/net/ipv4/ip_forward 1 $ cat /proc/sys/net/ipv4/conf/default/forwarding 1 $ cat /proc/sys/net/ipv4/conf/all/forwarding 1 $ cat /proc/sys/net/ipv4/conf/enp0s3/forwarding 0 $ cat /proc/sys/net/ipv4/conf/tun0/forwarding 0 我不能启用/proc/sys/net/ipv4/conf/enp0s3/forwarding,并/proc/sys/net/ipv4/conf/tun0/forwarding在sysctl.conf因为这些文件不存在于这样的早期启动时间: systemd-sysctl[85]: Couldn't write '1' to 'net/ipv4/conf/enp0s3/forwarding', ignoring: No such file or directory systemd-sysctl[85]: Couldn't write '1' to 'net/ipv4/conf/tun0/forwarding', ignoring: No such …

3
如何确保sshd是关机期间最后停止的服务?
我注意到当我发出reboot命令时,我的SSH连接在CentOS 7上立即关闭。这并不意味着服务器已经重新启动,因为我仍然可以ping通它。 似乎systemd杀死sshd为时过早。有时,服务会因关闭而卡住或变得很慢,即使服务器已启动,我也无法登录以验证问题所在。 有没有办法告诉systemd在所有其他服务都关闭之后才杀死sshd?

2
启动或停止服务后,能否使systemd显示服务状态?
我试图让systemd执行init.d脚本所要执行的工作,在手动给定启动或停止命令后,自动显示服务的状态。这可能吗? 不幸的是,systemd会突然弹出,因为它在后台运行,然后您必须执行第二个命令以显示状态,开始或停止可能有效或无效,除非您询问并让您幸福无知,否则systemd不会告诉您。 即。我试图得到 service nginx status 在我执行 service nginx start 要么 service nginx restart (或在大脑受损的systemd中 systemctl start nginx.service)
8 init.d  systemd 

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.