Questions tagged «systemd»

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

3
文档:Linux会话的体系结构
我正在寻找一份良好的概述文档,以描述现代Linux会话中涉及的守护程序和服务堆栈。尽管已经阅读了有关dbus和的各种文档systemd,但我仍然不了解。 特别是,我正在寻找这些问题的答案(不要回答这些问题,它们只应澄清我正在寻找的文档类型): 登录后,用户会话的根是哪个进程? 应该启动哪些过程,为什么?无论正在启动Gnome,KDE,FVWM还是简单的shell,我都在寻找与桌面无关的答案。 所有这些守护程序起什么作用?他们中的哪一个将独自运行,而这取决于其他人?哪个人应该由谁开始,为什么以及要花多长时间?谁应该维护那个动物园? 我问,因为我发现我有开机后马上运行的守护进程的一个整体动物园:systemd-journald,systemd-udevd,dbus-daemon, systemd-logind。但还不够:除了这些,运行超轻量级PDF查看器zathura 进一步填充我的会话dbus-launch, dbus-daemon,at-spi2-registryd,和at-spi-bus-launcher,后者启动另一个dbus-daemon。他们之前都没有去过那里,也没有被邀请过,但是他们会待在房子周围,给我一种令人毛骨悚然的感觉,直到我注销为止。我确定我在这里遗漏了一些东西... 另一个示例:登录后,我systemd正在使用用户的UID运行,但是我不知道应该怎么做(因为版本206,我认为我不应该将其用作会话管理器,对吗?)。它有一个子进程(sd-pam),但我找不到相关的文档。 他们在做什么?这种设置背后的想法是什么? 为了阐明我的观点:在“过去”时代,足以知道 login将启动我的登录shell(bash执行~/.profile),从那时起,我可以根据情况继续构建会话,也许是启动screen或startx。


1
Systemd挂载失败。where =设置与单位名称不匹配
如果我使用此命令: mount -t xfs -o noatime,nodiratime,logbufs=8 -L d1 /srv/node/d1 一切正常。但是,如果我尝试通过安装进行systemd安装,它将失败。 我创建了一个/etc/systemd/system/mnt-d1.mount包含以下内容的文件: [Unit] Description = Disk 1 [Mount] What = LABEL=d1 Where = /srv/node/d1 Type = xfs Options = noatime,nodiratime,logbufs=8 [Install] WantedBy = multi-user.target 之后,我运行以下命令: systemctl daemon-reload systemctl start mnt-d1.mount 最后一个显示给我: Failed to start mnt-d1.mount: Unit mnt-d1.mount failed to load: Invalid …
20 mount  systemd 


4
为什么启用的systemd服务无法在启动时启动?
我在以下系统文件单元中/etc/systemd/system/emacs.service: [Unit] Description=Emacs: the extensible, self-documenting text editor Documentatin=man:emacs(1) info:Emacs [Service] Type=forking ExecStart=/usr/bin/emacs --daemon ExecStop=/usr/bin/emacsclient --eval "(progn (setq kill-emacs-hook nil) (kill-emacs))" Restart=always Environment=DISPLAY=:%i TimeoutStartSec=0 [Install] WantedBy=default.target 我希望它在启动时开始,所以我已经进入 systemctl enable emacs 但是,每次我的服务重新启动时,都会systemctl status emacs显示: ● emacs.service - Emacs: the extensible, self-documenting text editor Loaded: loaded (/etc/systemd/system/emacs.service; disabled; vendor preset: enabled) Active: …
20 systemd 

2
使用systemd每30分钟运行一次脚本
我想在启动系统后每30分钟执行一次脚本。我知道您可以使用cron,但是我不打算经常使用此功能,因此我想在systemd上尝试使用。 到目前为止,我只发现了单调计时器,它允许执行一次操作(至少我认为是这样)。如果我想从启动/系统启动起每30分钟执行一次操作,该foo.timer和foo@user.service会怎么样? foo@user.service [Unit] Description=run foo Wants=foo.timer [Service] User=%I Type=simple ExecStart=/bin/bash /home/user/script.sh foo.timer [Unit] Description=run foo [Timer] where I am stuck... ???

3
有没有办法知道什么时候会运行systemd计时器?
我正在测试systemd计时器,并尝试覆盖其默认超时,但是没有成功。我想知道是否有一种方法可以要求systemd告诉我们该服务何时将在下一次运行。 普通文件(/lib/systemd/system/snapbackend.timer): # Documentation available at: # https://www.freedesktop.org/software/systemd/man/systemd.timer.html [Unit] Description=Run the snapbackend service once every 5 minutes. [Timer] # You must have an OnBootSec (or OnStartupSec) otherwise it does not auto-start OnBootSec=5min OnUnitActiveSec=5min # The default accuracy is 1 minute. I'm not too sure that either way # will affect …

2
为什么要在进程名称周围添加括号?
在我的机器上(Debian测试),当我这样做时 ps aux | grep pam 我得到 orto 609 0.0 0.0 58532 2148 ? S 08:06 0:00 (sd-pam) orto 5533 0.0 0.0 12724 1948 pts/1 S+ 16:51 0:00 grep pam (sd-pam)似乎是一个奇怪的名字。在阅读该论坛时,我看到此名称是systemd故意设置的。在源代码中,我们看到了 /* The child's job is to reset the PAM session on * termination */ /* This string must fit …
19 process  systemd 

2
如何仅清除特定单位的journalctl条目?
我花了几天时间编写一个python脚本,并为其创建一个systemd单元文件。在测试过程中,该脚本记录了许多要记录的错误。现在,我想清除日志中的那些错误。 有多种清除整个日志的方法,如下所述:如何清除journalctl, 包括使用journalctl --vacuum-time=2d,使用journalctl --vacuum-size=500M和临时将SystemMaxUse=/etc/systemd/journald.conf中的值设置为非常低的值。 所有这些似乎清除了整个日志,影响了所有单元。我只需要清除单个单元的条目。这可能吗?

1
如果进程尚未完成,systemd计时器单元是否跳过下一次运行?
我想使用systemd每5分钟运行一次命令。但是,存在执行任务有时可能需要5分钟以上的风险。到那时,systemd将启动命令的第二个实例,即我最终将运行2个进程吗? 如果第一个尚未完成,是否可以告诉systemd不要启动第二个进程?如果没有,有什么好的解决方法? 注意:我希望答案是“这是默认行为。只是没有记录在案。” 如果是这种情况,有人可以告诉我如何针对他们的文档提交错误吗? 注意:Cron有一个类似的问题,将在/unix//a/173928/11244中讨论。我正在寻找systemd等效项。
18 cron  systemd 

5
我无法启用或禁用用户服务:无法执行操作:没有此类文件或目录
我想在Eclipse中调试/测试使用Redis服务器的程序,因此我决定将服务器转换为用户服务以具有运行它的特权。让我困扰的是我可以启动或停止该服务,但无法启用/禁用它。 我得到的错误是: Failed to execute operation: No such file or directory 原始的/ usr / lib / systemd / system: [Unit] Description=Advanced key-value store After=network.target [Service] User=arkos ExecStart=/usr/bin/redis-server /etc/arkos/arkos-redis.conf ExecStop=/usr/bin/redis-cli shutdown [Install] WantedBy=multi-user.target 编辑并移至/ usr / lib / systemd / user: [Unit] Description=Advanced key-value store [Service] ExecStart=/usr/bin/redis-server /etc/arkos/arkos-redis.conf ExecStop=/usr/bin/redis-cli shutdown [Install] …

2
`logger'在Arch Linux中将消息记录到哪里?
该logger命令通过syslog记录一个条目,该条目通常将该行放入诸如之类的文件中/var/log/messages。 如果我在Arch Linux中正确理解了文档,则所有日志记录都是通过systemd完成的,但是我找不到logger使用的条目journalctl。 logger在Arch Linux中给出的消息究竟会发生什么? 日志条目存储在哪里?(快速grep建议/var/log/journal/*/system.journal。) 如何访问此日志?(我需要任何特殊选择journalctl吗?)

1
在systemd崩溃后如何自动强制fsck磁盘?
如何设置崩溃(systemd自动fsck关机)后自动强制磁盘? 当我sysvinit在Arch Linux中/sbin/init使用hack时:在rc.local我创建/forcefsck文件中;在rc.local.shutdown我删除它。在启动时rc.sysinit启用强制fsck(如果/forcefsck存在)。 怎么做systemd?也许它具有内置的自动fsck粉碎后设备?
18 systemd  fsck 

4
使用systemd在启动时启动Nginx
我刚刚在Debian 8服务器上安装了nginx 1.9。当我告诉它运行时,nginx可以正常工作,但它似乎不会在启动时自动加载nginx。 我已经尝试了Internet上推荐的众多初始化脚本,但是还没有任何效果。所以现在我想用systemctl弄清楚。 ~$ systemctl status nginx ● nginx.service Loaded: masked (/dev/null) Active: inactive (dead) ~$ sudo systemctl try-restart nginx Failed to try-restart nginx.service: Unit nginx.service is masked. ~$ sudo systemctl reload nginx Failed to reload nginx.service: Unit nginx.service is masked. ~$ sudo systemctl reload nginx Failed to reload …
18 debian  systemd  nginx 

2
以root以外的用户身份运行systemd服务!
我创建了以下服务amos.service,它需要作为amos运行(amos组的成员) [Unit] Description=AMOS Service After=network.target [Service] User=amos Group=amos Type=simple WorkingDirectory=/usr/share/amos ExecStart=/usr/share/amos/amos_service.sh start ExecStop=/usr/share/amos/amos_service.sh stop Restart=on-failure [Install] WantedBy=multi-user.target 所有权限都已设置/usr/share/amos为amos:amos amos_service.sh如下: #!/bin/bash CUDIR=$(dirname "$0") cd /usr/share/amos start() { exec /usr/share/amos/run_amos.sh >> /var/log/amos.log 2>&1 } stop() { exec pkill java } case $1 in start|stop) "$1" ;; esac cd "$CURDIR" 当我最初运行该服务而未对目录进行任何修改(即,属于root)和amos.service没有User not Group参数时,一切运行良好! …
18 systemd  services  init 

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.