标签: systemd

我可以在不重新启动的情况下重新启动 systemd 吗?

我正在尝试yum update在 RHEL 7.4之后重新启动服务。我可以使用 systemctl 重新启动每个服务,但是needs-restartingfromyum utils告诉我我也应该重新启动 systemd 本身:

# needs-restarting
1 : /usr/lib/systemd/systemd --system --deserialize 21
Run Code Online (Sandbox Code Playgroud)

我可以在systemd不重新启动服务器的情况下重新启动吗?如何重新启动?

我发现了一些关于 的提及systemctl daemon-reload,但这并没有使它从需要重新启动列表中消失。

rhel systemd

54
推荐指数
2
解决办法
7万
查看次数

检查系统是否在 BASH 中使用 systemd 或 sysvinit 的便捷方法?

我正在定义要在不同发行版中使用的通用 bash 文件。我需要一种方法来检查系统是使用 systemd 还是 sysvinit (/etc/init.d/)。我需要这个,所以我运行适当的命令来启动服务。检查这个的安全方法是什么?我目前检查 systemctl 命令是否存在,但这真的是一个选项,因为可能存在 systemctl 命令可用的情况,但这并不一定意味着实际使用了 systemd?

这是我当前 bash 脚本的摘录:

#!/bin/sh
if [ command -v systemctl >/dev/null ]
then
    systemctl service start
else
    /etc/init.d/service start
fi
Run Code Online (Sandbox Code Playgroud)

linux scripting systemd sysvinit

53
推荐指数
1
解决办法
9万
查看次数

如何在 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,因为它已被弃用并且不起作用。

debian systemd init x-server lightdm

51
推荐指数
2
解决办法
10万
查看次数

systemd:mkdir 和 ExecStartPre 的权限问题

这个(缩短的)systemd 服务文件有问题:

[Unit]
Description=control FOO daemon
After=syslog.target network.target

[Service]
Type=forking
User=FOOd
Group=FOO
ExecStartPre=/bin/mkdir -p /var/run/FOOd/
ExecStartPre=/bin/chown -R FOOd:FOO /var/run/FOOd/
ExecStart=/usr/local/bin/FOOd -P /var/run/FOOd/FOOd.pid
PIDFile=/var/run/FOOd/FOOd.pid

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

FOOd为用户名,FOO为组名,我的 daemon 已经存在/usr/local/bin/FOOd

我需要/var/run/FOOd//usr/local/bin/FOOd通过# systemctl start FOOd.service. 这失败了,因为 mkdir 由于权限无法创建目录:

...
Jun 03 16:18:49 PC0515546 mkdir[2469]: /bin/mkdir: cannot create directory /var/run/FOOd/: permission denied
Jun 03 16:18:49 PC0515546 systemd[1]: FOOd.service: control  process exited, code=exited status=1
...
Run Code Online (Sandbox Code Playgroud)

为什么 mkdir 在 ExecStartPre 失败,我该如何解决?(不,我不能对 mkdir 使用 sudo …

permissions systemd

50
推荐指数
3
解决办法
4万
查看次数

每 15 分钟一次 systemd 计时器

我正在尝试制作一个每 15 分钟运行一次的 systemd 计时器。现在我有:

这一遍又一遍地运行,没有停止。有必要*:0,15,30,45:*代替吗?我怎样才能使这项工作?

systemd systemd-timer

49
推荐指数
2
解决办法
7万
查看次数

我可以阻止“service foo status”通过“less”对其输出进行分页吗?

你如何阻止命令service <name> status使用less在它的输出?

我有一个脚本可以自动执行一些 sysadmin 操作,在我将服务器升级到 Ubuntu 16.04 后,它中断了,因为检查服务状态的操作被阻塞,因为它使用类似less显示输出的东西,特别是supervisor服务。

我有几个守护进程配置为运行,当运行时sudo service supervisor status,我得到:

* supervisor.service - Supervisor process control system for UNIX
   Loaded: loaded (/lib/systemd/system/supervisor.service; disabled; vendor preset: enabled)
   Active: active (running) since Mon 2017-02-06 20:35:34 EST; 12h ago
     Docs: http://supervisord.org
  Process: 18476 ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown (code=exited, status=0/SUCCESS)
 Main PID: 20228 (supervisord)
   CGroup: /system.slice/supervisor.service
           |- 7387 /usr/local//myproject/.env/bin/python2.7 /usr/local//myproject/.env/bin/celery worker -A /myproject -l info --autoreload
           |- 7388 /usr/local//myproject/.env/bin/python2.7 /usr/local//myproject/.env/bin/celery worker -A …
Run Code Online (Sandbox Code Playgroud)

systemd services

46
推荐指数
4
解决办法
1万
查看次数

systemd 的目标、服务和套接字是什么?

我知道它们都是单元文件,但我无法理解它们的特殊含义。我认为目标类似于守护进程,套接字与套接字(IP + 端口)相同,但也与 inode 编号相同。任何人都可以用简单的词来解释它们吗?

systemd

45
推荐指数
2
解决办法
5万
查看次数

更改 /etc/machine-id 可以吗?

我克隆了一个磁盘(SSD)并将克隆的磁盘放入另一台机器。现在两个系统在/etc/machine-id. 简单地编辑/etc/machine-id以更改值有什么问题吗?我可以在系统运行时执行此操作吗(或者我是否需要从 Live USB 启动)?

systemd-machine-id-setup更好的选择吗?

天真的使用systemd-machine-id-setup不起作用。我尝试了以下步骤:

nano /etc/machine-id (to remove the existing value)
systemd-machine-id-setup
> Initializing machine ID from D-Bus machine ID.
cat /etc/machine-id
Run Code Online (Sandbox Code Playgroud)

新值与旧值相同。

d-bus systemd

43
推荐指数
2
解决办法
4万
查看次数

究竟什么是“停止作业”,如“停止作业正在运行......”?

发出关闭命令后,有时会收到如下状态消息:

A stop job is running for Session 1 of user xy
Run Code Online (Sandbox Code Playgroud)

然后系统挂起一段时间,或永远取决于 ???

那么究竟什么是“停工”呢?

另外,为什么它有时会非常准确地估计所需的时间,而有时它可以永远运行?

shutdown systemd

42
推荐指数
1
解决办法
9万
查看次数

被 systemd 单元文件中的 ExecStartPre 条目弄糊涂了

我有一个 systemd 服务,需要在 中创建一个目录/run,否则以非 root 用户身份运行。从博客示例中,我得出了以下解决方案:

[Unit]
Description=Startup Thing

[Service]
Type=oneshot
ExecStart=/usr/bin/python3 -u /opt/thing/doStartup
WorkingDirectory=/opt/thing
StandardOutput=journal
User=thingUser
# Make sure the /run/thing directory exists
PermissionsStartOnly=true
ExecStartPre=-/bin/mkdir -p /run/thing
ExecStartPre=/bin/chmod -R 777 /run/thing

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

神奇之处在于评论后面的 3 行。显然ExecStartPre's 将以这种方式以 root 身份运行,但ExecStart将以指定用户身份运行。

这导致了 3 个问题:

  1. -在前面做什么/bin/mkdir?我不知道它为什么在那里或它做什么。
  2. ExecStartPre一个单元文件中有多个's 时,它们是否只是按照在单元文件中找到的顺序连续运行?或者其他什么方法?
  3. 这实际上是实现我创建运行目录以便非 root 用户可以使用它的目标的最佳技术吗?

systemd

42
推荐指数
2
解决办法
7万
查看次数