我想使用 systemd 每 5 分钟运行一次命令。但是,有时任务运行时间可能会超过 5 分钟,这是存在风险的。那时,systemd 会启动命令的第二个实例,即我最终会运行 2 个进程吗?
如果第一个进程尚未完成,是否可以告诉 systemd 不要启动第二个进程?如果没有,有什么好的解决方法?
注意:我希望答案是“这是默认行为。只是没有记录。” 如果是这种情况,有人可以告诉我如何针对他们的文档提交错误吗?
注意:Cron 有一个类似的问题,在https://unix.stackexchange.com/a/173928/11244 中讨论过。我正在寻找 systemd 等价物。
我想查找特定用户无法读取的文件。
假设用户名是“user123”,他们在一个名为“user123”的组中。我想找到那些文件,如果它们归 user123 所有,则 u+r 开启;如果文件是 user123 组,则失败,它应该打开 g+r;如果失败,它可以打开 o+r。
由于 GNU find 具有“-可读”,我可以这样做:
sudo -u user123 find /start ! -readable -ls
Run Code Online (Sandbox Code Playgroud)
但是,该进程必须由没有 sudo 访问权限的用户运行。因此我尝试了这个:(它不检查 o+r 但这并不重要)
find /start \( -user user123 ! -perm -u=r \) -o \( -group user123 ! -perm -g=r \) -ls
Run Code Online (Sandbox Code Playgroud)
但它列出了这个文件:
272118 4 -rw------- 1 user123 user123 3243 Jul 3 19:50 /start/blah/blah/file.txt
Run Code Online (Sandbox Code Playgroud)
该文件是/start
user123 拥有的唯一文件,并且g=r
关闭。就好像 find 正在解释-u=r
as -g=r
。
我决定尝试颠倒逻辑并改为测试not ( truth )
:
find /etc/puppet ! \( \( …
Run Code Online (Sandbox Code Playgroud) 我的 sshd_config 文件指定它应该监听某些特定的 IP 地址而不是所有的 IP 地址。问题是这些 NIC 之一直到引导序列的后期才出现。到那时 sshd 已经启动,并且由于 IP 地址不可用,因此永远不会侦听该 IP 地址。
ListenAddress 127.0.0.1
ListenAddress 10.0.0.10
Run Code Online (Sandbox Code Playgroud)
有没有办法告诉 sshd 定期重新扫描可用的 IP 地址,或者有没有办法告诉 systemd 稍后启动 sshd?