我正在寻找一种方法,可以简单地从 Debian 中的 systemctl 服务打印最后 X 行。我想将此代码安装到脚本中,该脚本使用打印的和最新的日志条目。我找到了这篇文章,但我无法根据我的目的修改它。
目前我正在使用这段代码,它只是给了我一小段日志文件:
journalctl --unit=my.service --since "1 hour ago" -p err
Run Code Online (Sandbox Code Playgroud)
为了举例说明结果应该是什么样子,只需为任何服务输入上面的命令并滚动到日志末尾。然后从底部开始复制最后 300 行。
我的想法是使用 egrep ex。egrep -m 700 .
但从现在起我就没有运气了。
使用一个命令来启动和启用systemctl
托管软件将有助于在几个脚本中节省几行,使它们更美观(不是真正的问题,而是一件好事)。
是否有一个systemctl
命令start
和enable
一个由 控制的程序systemctl
?
(分布:Debian 10)
我有一个重复出现的错误消息,主要是在使用 systemctl 时弹出(也在安装包时,偶尔会在其他一些我不知道的地方),
Unit -.mount is masked.
Run Code Online (Sandbox Code Playgroud)
有时(取决于调用错误消息的命令)它更详细,例如
Error: GDBus.Error:org.freedesktop.systemd1.UnitMasked: Unit -.mount is masked.
Run Code Online (Sandbox Code Playgroud)
此错误不会阻止安装软件包或任何已启用的 systemd 服务(因此在启动时加载),但使用systemctl
或service
重新启动、启动或停止服务会失败。这意味着我必须重新启动整个服务器才能重新启动服务,这可能有点烦人。
尝试取消屏蔽根安装systemctl unmask -- -.mount
似乎可以工作(没有返回任何内容),但之后systemctl status -- -.mount
仍然输出以下内容:
? -.mount - Root Mount
Loaded: masked (Reason: Unit -.mount is masked.)
Active: active (mounted) since Mon 2019-08-05 15:03:38 AEST; 4h 8min ago
Where: /
What: /dev/sde1
Tasks: 0 (limit: 4915)
Memory: 0B
CGroup: /system.slice/-.mount
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?我不想从这个服务器的全新安装开始,所以我要么找到修复程序,要么在需要重新加载服务时处理必须重新启动。
对于使用 systemd 的 Linux 发行版,这两个命令之间有实际区别吗?
systemctl suspend
pm-suspend
我应该使用或更喜欢哪个?
如手册页所述,
systemctl --now enable servicename
Run Code Online (Sandbox Code Playgroud)
应该启用并启动服务。
但在许多不同的发行版下,它对我来说从来没有用过。
而输出:
systemctl is-enabled
启用,
systemctl is-active
该服务仍处于非活动状态。
这个开关有什么用?
我尝试过其他组合,例如:
systemctl enable --now servicename
Run Code Online (Sandbox Code Playgroud)
和:
systemctl enable servicename --now
Run Code Online (Sandbox Code Playgroud)
但还是一样;我systemctl start servicename
每次都必须手动,即使上一个命令(即enable
部件)成功执行。
应用程序对systemd服务的实现是否应该支持它在单元文件中的某处实现该功能;许多知名服务没有遵循,这让我认为它完全无用;我假设考虑过它。
我有一个源自 /etc/init.d/XX 脚本的“服务”,并为其生成了一个 systemd包装器。它不会在任何运行级别自动启动,并且当我运行时systemctl --all
它systemctl list-unit-files --all
不会显示在任何列表中。
我的预感是,因为它没有依赖项,尚未启动,所以它没有“加载”到 systemd 中(因此未启用,未加载),因此 systemd 不会列出它。
有没有办法获取所有可能的服务的完整列表,即使是那些尚未启动且未自动启动的服务?或者做systemctl search
同等的事情?
此相关问题仅询问将在启动时尝试的服务列表。
“--all”下的man
页面显示systemctl
要列出系统上安装的所有单元,请使用 list-unit-files 命令
但这些禁用的单位不会出现在 的输出中list-unit-files
。
我对启用或活动和禁用或不活动的概念感到困惑。
有人可以解释一下吗?
我经常连接到有很多打印机的网络。当打印机发现正在进行时,GNOME 中会弹出许多分散注意力的消息。我很少使用打印机,所以我更愿意在大部分时间禁用 CUPS。CUPS停止工作,并消除烦人的通知:
systemctl stop cups
Run Code Online (Sandbox Code Playgroud)
我想禁用开机。出人意料的是,后禁用
systemctl disable cups
Run Code Online (Sandbox Code Playgroud)
重启后 CUPS 仍然运行。状态命令
systemctl status cups
Run Code Online (Sandbox Code Playgroud)
产生
? cups.service - CUPS Scheduler
Loaded: loaded (/lib/systemd/system/cups.service; disabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/cups.service.d
Active: active (running) since Tue 2018-11-06 02:35:50 PST; 11s ago
Run Code Online (Sandbox Code Playgroud)
我预计禁用服务将阻止其在重新启动后运行。激活是否因为预设而发生?我试图用 预设“禁用”状态--preset-mode
,但没有用。
我的操作系统是Debian的弹力。
systemctl --version
systemd 232
+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN
Run Code Online (Sandbox Code Playgroud) 我想知道是否systemd
存在某个单位。
这应该适用于:
我知道我可以这样做:
systemctl list-unit-files | grep "^my.target"
Run Code Online (Sandbox Code Playgroud)
但感觉必须有更好的方法。
或者,我希望能够通过仅指定my而无需指定“.service”(如其他systemctl
命令)来运行此检查,例如
systemctl exists my
Run Code Online (Sandbox Code Playgroud) 我正在尝试获取一个单元的状态,但只有前 3 行是这样的:
systemctl --user status resilio-sync --lines=3
Run Code Online (Sandbox Code Playgroud)
我已经用 -n 3 等尝试了各种变体,但没有任何效果。奇怪的部分:它总是显示完整的日志(13 行),而不是 10 行,根据systemctl的文档应该是默认值。
尝试systemctl status
证实了这一点:它只是将所有 45 行输出到终端,而实际上应该是 10 行。
我在这里错过了什么吗?据我所知,我没有改变任何东西。
作为一种解决方法,我目前正在使用:
systemctl --user status resilio-sync | sed -ne '1,3p'
Run Code Online (Sandbox Code Playgroud)
但我宁愿解决根本问题并使用本机命令。系统是 Raspberry Pi 上的 Kali Linux(re4son-kernel,粘手指)(很容易归咎于这种奇怪的设置,但由于这是核心 Linux 功能,我认为这无关紧要)
systemctl ×10
systemd ×9
services ×2
startup ×2
cups ×1
debian ×1
exit-status ×1
journalctl ×1
kali-linux ×1
pm-utils ×1
raspberry-pi ×1
shell-script ×1
suspend ×1