小编Mar*_*der的帖子

我可以在不重新启动的情况下重新启动 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万
查看次数

为什么 ln -s 接受单个参数

> cd /tmp
> ln -s foo
> ls -alhF /tmp
lrwxrwxrwx 1 user user    3 Jul 29 14:00 foo -> foo
Run Code Online (Sandbox Code Playgroud)

这是一个错误ln还是有一个将文件符号链接到自身的用例?

这是与coreutils 8.21-1ubuntu5.1.

coreutils symlink ln

30
推荐指数
2
解决办法
2173
查看次数

/lib 和 /usr/lib 和 /var/lib 之间有什么区别?

/lib/usr/lib和有什么不一样/var/lib?有些文件是“复制”其他目录内容的符号链接。

directory-structure

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

为什么要更改默认 ssh 端口?

我注意到很多管理员更改了默认的 ssh 端口。这样做有什么合理的理由吗?

security ssh

19
推荐指数
3
解决办法
2237
查看次数

为什么“file xxx.src”导致“无法打开`xxx.src'(没有这样的文件或目录)”但退出状态为0(成功)?

为什么file xxx.src导致cannot open `xxx.src' (No such file or directory)但退出状态为 0(成功)?

$ file xxx.src ; echo $?
xxx.src: cannot open `xxx.src' (No such file or directory)
0
Run Code Online (Sandbox Code Playgroud)

注意:比较ls

$ ls xxx.src ; echo $?
ls: cannot access 'xxx.src': No such file or directory
2
Run Code Online (Sandbox Code Playgroud)

linux file-command exit-status

17
推荐指数
2
解决办法
3646
查看次数

`systemctl` 的 --now 开关

手册页所述,

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服务的实现是否应该支持它在单元文件中的某处实现该功能;许多知名服务没有遵循,这让我认为它完全无用;我假设考虑过它。

startup systemd services systemctl

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

systemd:如何使用 /etc/fstab 自动挂载 USB 文件系统?

我希望我的 USB 文件系统在我连接设备时自动挂载。

如何使用systemdvia设置自动挂载/etc/fstab

automounting autofs systemd

14
推荐指数
1
解决办法
7755
查看次数

为什么ping终止后还有输出?

当一个进程中断时,我知道不会再返回任何输出。但总是在中断ping命令之后,我们有执行的统计信息,据我所知,这是输出的一部分。

amirreza@time:~$ ping 4.2.2.4
PING 4.2.2.4 (4.2.2.4) 56(84) bytes of data.
64 bytes from 4.2.2.4: icmp_seq=1 ttl=51 time=95.8 ms
64 bytes from 4.2.2.4: icmp_seq=2 ttl=51 time=92.3 ms
^C
--- 4.2.2.4 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 92.321/94.052/95.783/1.731 ms
amirreza@time:~$ 

Run Code Online (Sandbox Code Playgroud)

它是如何工作的?

process ping output

14
推荐指数
1
解决办法
2814
查看次数

为什么“bash -x”会破坏这个脚本?

我有一个脚本来测量某个命令执行的时间。

它需要“真实”time命令,意思是一个二进制文件,例如 in /usr/bin/time(因为 bash 内置没有-f标志)。

下面是一个可以调试的简化脚本:

#!/bin/bash

TIMESEC=$(echo blah | ( /usr/bin/time -f %e grep blah >/dev/null ) 2>&1 | awk -F. '{print $1}')

echo ABC--$TIMESEC--DEF

if [ "$TIMESEC" -eq 0 ] ; then
   echo "we are here!"
fi
Run Code Online (Sandbox Code Playgroud)

另存为“test.sh”并执行:

$ bash test.sh
ABC--0--DEF
we are here!
Run Code Online (Sandbox Code Playgroud)

所以它奏效了。

现在,让我们尝试通过在 bash 命令行中添加“-x”来调试它:

$ bash -x test.sh
++ echo blah
++ awk -F. '{print $1}'
+ TIMESEC='++ /usr/bin/time -f %e grep blah
0'
+ echo ABC--++ …
Run Code Online (Sandbox Code Playgroud)

bash shell-script

13
推荐指数
2
解决办法
1144
查看次数

为什么 systemd 中的简单类型服务“进程不能分叉”?

我想编写自己的systemd单元文件来管理真正长时间运行的命令1(以小时为单位)。在查看关于 systemdArchWiki 文章时,它说明了以下关于选择启动类型的内容:

Type=simple(默认):systemd 认为服务会立即启动。进程不能 fork。如果需要在此服务上订购其他服务,请不要使用此类型,除非它是套接字激活的。

为什么进程根本不能分叉?它是指以守护进程召唤过程(父分叉,然后退出)的风格进行分叉,还是任何类型的分叉?


1我不想要 tmux/screen,因为我想要一种更优雅的方式来检查状态和重新启动服务,而无需求助于tmux send-keys.

fork systemd

13
推荐指数
2
解决办法
2400
查看次数