相关疑难解决方法(0)

shell 脚本行末尾的&符号是什么意思?

sh sys-snap.sh &
Run Code Online (Sandbox Code Playgroud)

什么是sh?什么是sys-snap.sh?为什么我应该放在&行尾?谁能解释一下语法?

如果没有&脚本,在我按下Ctrl+之前,脚本不会返回到提示C。随着&我可以按回车,它的工作原理。

shell

146
推荐指数
3
解决办法
22万
查看次数

pid 和 lock 文件有什么用?

我经常看到程序指定pid和lock文件。而且我不太确定他们做什么。

比如编译nginx的时候:

--pid-path=/var/run/nginx.pid \
--lock-path=/var/lock/nginx.lock \
Run Code Online (Sandbox Code Playgroud)

有人可以对此有所了解吗?

lock pidfile

93
推荐指数
3
解决办法
10万
查看次数

在启动服务之前删除 pid 文件的最佳方法是什么?

我有一个服务在关闭时并不总是删除其 pid 文件。所以当它再次启动时就会失败。我的系统是 RHEL 7.2 系统,我想要做的是让系统在启动之前查找该文件,如果找到则将其删除。我需要使用 systemctl 完成所有这些操作,或者需要在有人运行之前进行systemctl start <service>。我有我想要使用的命令,我只是不确定如何将其与 systemctl 集成以实现无缝过程。这是命令:

[ -f /var/run/dir/file.pid ] && echo "Found and removing" && rm -f /var/run/dir/file.pid || echo "Not Found"
Run Code Online (Sandbox Code Playgroud)

是否可以将其粘贴到位于 /usr/lib/systemd/system/ 的服务文件中?如果是这样,我会把它放在哪里?这是需要进入的文件的内容。我们将其称为 dns.service。

[Unit]
Description=DNS daemon
BindTo=dns.service
After=syslog.target network.target dns.service
ConditionPathExists=/etc/dns/dns.conf

[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/dns
ExecStart=/usr/sbin/dns -u dns -g dns -f   /etc/dns/dns.conf -d -P 17500
Restart=on-abort

[Install]
WantedBy=network.target
Run Code Online (Sandbox Code Playgroud)

这看起来是完成此任务的正确方法还是有更好的方法?

systemd services

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

标签 统计

lock ×1

pidfile ×1

services ×1

shell ×1

systemd ×1