Questions tagged «systemd»

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

4
我们如何允许非root用户控制system.d服务?
使用sysvinit,这样的sudoers条目就足够了: %webteam cms051=/sbin/service httpd * 这将允许以下命令: sudo service httpd status sudo service httpd restart 现在,使用systemd,服务名称是最后一个参数。即,服务重启将通过以下方式完成: systemctl restart httpd.service 自然地,我认为将命令定义为systemctl * httpd.service可行,但是将允许诸如此类的操作systemctl restart puppet.service httpd.service,而不是所需的效果。 考虑到这一点,那么非root用户控制system.d服务的最佳方法是什么?这不必是sudoers; 也许更改文件许可权可能就足够了?

5
如何在Ubuntu云VM映像上禁用`apt-daily.service`?
Ubuntu 16.04服务器VM映像显然每12个小时左右启动一次“ apt-daily.service”。此服务执行各种与APT相关的任务,例如刷新可用软件包列表,在需要时执行无人值守升级等。 从虚拟机“快照”启动时,该服务会立即触发,因为(我想)systemd很快意识到计时器应该早就关闭了。 但是,正在运行的APT会apt锁定,因此会阻止其他进程运行/var/lib/dpkg。指示此错误消息如下所示: E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable) E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it? 在Ansible完成机器设置(通常涉及安装软件包)之前,我需要禁用此自动APT任务。有关更多信息和上下文,请参见https://github.com/gc3-uzh-ch/elasticluster/issues/304。 我尝试了各种选项,通过的“用户数据”脚本禁用“无人值守的升级”功能cloud-init,但是到目前为止,所有这些选项都失败了。 1.禁用系统任务 systemd任务apt-daily.service由触发apt-daily.timer。我试图通过以下命令的各种组合来禁用一个或另一个,或者两者都禁用。仍然apt-daily.service是VM准备好接受SSH连接之后的启动时刻:: #!/bin/bash systemctl stop apt-daily.timer systemctl disable apt-daily.timer systemctl mask apt-daily.service systemctl daemon-reload 2.禁用配置选项 APT::Periodic::Enable 脚本/usr/lib/apt/apt.systemd.daily读取一些APT配置变量。该设置APT::Periodic::Enable将完全禁用该功能(第331--337行)。我尝试使用以下脚本禁用它: …


3
我的systemd单位文件放在哪里?
我读到有两个单位文件文件夹(不在用户模式下)。 /usr/lib/systemd/system/: units provided by installed packages /etc/systemd/system/: units installed by the system administrator 与此答案相矛盾的是以下答案:https : //unix.stackexchange.com/a/47715/33386。有人可以填写缺少的信息,以便我了解发生了什么吗?(更新:答案已更新,我的理解不再与之冲突。) 另外,脚本似乎组织在该/etc/systemd/system/文件夹中的子文件夹中: getty.target.wants multi-user.target.wants 在另一个位置,我读到还有其他位置。看来这些是针对特定于用户的服务的。 /usr/lib/systemd/user/ where services provided by installed packages go. /etc/systemd/user/ where system-wide user services are placed by the system administrator. ~/.config/systemd/user/ where the user puts its own services. 更新2015-08-31: 为了其他人,这是我最近问过的一个相关问题的链接: …


8
用户的会话c2正在运行停止作业
几乎每次关闭计算机时都会出现以下消息: A stop job is running for Session c2 of user ... (1min 30s) 它等待1分钟30秒,然后继续关闭过程。我遵循此systemd关闭诊断指南并获取shutdown-log.txt(由于日志很长,因此无法直接在此处粘贴日志)。不幸的是,我自己不理解日志。谁能帮助我找出导致我的系统无法正常关闭的原因? 我运行带有内核的Arch Linux 4.4.5-1-ARCH,我的systemd版本是229-3。 补充1:我发现每次注销,然后从登录屏幕关闭计算机时,都不会收到消息A stop job is running...。我试图关闭前多次注销,所以我认为这并非偶然。希望信息能有所帮助。 添加2:始终是会话c2导致关机挂起。因此,正如@ n​​.st所建议的那样,我再次查看了诊断关机问题并存储loginctl session-status c2了dmesg,而不是,但是之后没有任何内容shutdown-log.txt。我替换loginctl session-status c2为systemd-cgls并得到以下日志: Control group /: -.slice └─init.scope ├─ 1 /usr/lib/systemd/systemd-shutdown reboot --log-level 6 --log-target ... ├─1069 /usr/lib/systemd/systemd-shutdown reboot --log-level 6 --log-target ... ├─1071 …
56 systemd  shutdown 

11
如何避免dnsmasq与systemd-resolved之间的冲突?
我最近安装了dnsmasq充当本地网络的DNS服务器。dnsmasq从systemd-resolved侦听本地DNS存根侦听器已在使用的端口53 。 只需停止运行systemd-resolved,然后在dnsmasq运行后重新启动它即可解决此问题。但是它在重新引导后返回:systemd-resolved以优先级启动,并且dnsmasq将不会启动,因为端口53已被使用。 我想,第一个显而易见的问题是,如何使systemd-resolved最好地理解它不应该启动本地DNS存根侦听器,并因此保留端口53供dnsmasq使用? 但是,一个更有趣的问题是这两种服务通常是如何协同工作的。如果使用dnsmasq,它们甚至打算并肩工作还是被systemd解析?
56 systemd  dnsmasq 

3
Systemd Restart =总是不被接受
注意:我在Medium上写了一篇文章,解释了如何创建服务以及如何避免这个特殊问题:使用systemd创建Linux服务。 原始问题: 我正在使用systemd使工作脚本始终保持工作状态: [Unit] Description=My worker After=mysqld.service [Service] Type=simple Restart=always ExecStart=/path/to/script [Install] WantedBy=multi-user.target 尽管如果脚本在几分钟后正常退出,则重新启动可以正常工作,但是我注意到,如果脚本在启动时反复执行失败,systemd将放弃尝试启动它: Jun 14 11:10:31 localhost systemd[1]: test.service: Main process exited, code=exited, status=1/FAILURE Jun 14 11:10:31 localhost systemd[1]: test.service: Unit entered failed state. Jun 14 11:10:31 localhost systemd[1]: test.service: Failed with result 'exit-code'. Jun 14 11:10:31 localhost systemd[1]: …
53 systemd 

2
如何使用systemd-resolved对DNS进行故障排除?
您将如何查找所使用的DNS服务器以systemd-resolved进行故障排除? 通常,我可以使用dig和测试中显示的DNS服务器/etc/resolv.conf。(或Windows- ipconfig /all+ nslookup)。但是,当resolv.conf仅指向回送地址上的本地解析程序守护程序时,该方法将不起作用。在systemd-resolved下使用哪种方法来显示其使用的DNS服务器? (虽然我不确定是否可以在没有配置文件的情况下动态添加服务器,但unbound也可以查看 dnsmasq是否有配置文件。即使NetworkManager现在有了nmcli,我也可以查询nmcli d show wlan0以显示接口的DNS配置。 )




1
“活动(退出)”状态对SystemD服务意味着什么?
我正在使用一个自定义服务,该服务实际上运行一个称为thisismywebserver的Web服务器。当前,它不起作用(即,尝试访问页面时出现“无法连接”错误)。 当我运行此命令service thisismywebserver status以查看服务的状态时,我看到该状态为“活动(已退出)”。这是否意味着服务已停止工作?如果不是,那意味着什么? root@thisismywebserver-testing:~# service thisismywebserver status ● thisismywebserver.service - LSB: ThisIsMyWebServer server Loaded: loaded (/etc/init.d/thisismywebserver) Active: active (exited) since Sun 2015-11-08 23:01:33 EST; 18h ago Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.


5
如何在Debian Jessie中禁用X服务器自动启动?
我有一台安装了lightdm的运行Debian 8(Jessie)的远程计算机。我希望它以无GUI模式启动,但是我不想删除所有与X相关的东西,以便仍然可以通过带-X参数的SSH运行它。那么如何禁用X服务器自动启动而不删除它呢? 我试过了systemctl stop lightdm,它会停止lightdm,但是重新启动后它会再次运行。我也尝试过systemctl disable lightdm,但是基本上什么也没做。它在/etc/rc*.d目录中重命名了lightdm的脚本,但是在重新启动后它仍然会启动,那么我在做什么错呢?而且我不能只是update-rc.d lightdm stop因为它已被弃用且无法正常工作。

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.