gpt4 book ai didi

linux - 我的 pidfile 必须位于/var/run 中吗?

转载 作者:IT老高 更新时间:2023-10-28 12:29:23 24 4
gpt4 key购买 nike

我在两种情况下都问:技术上和风格上。

我的应用程序/守护程序可以在 /opt/my_app/run/ 中保留一个 pidfile 吗?

这样做很糟糕吗?

我的需要是:我的守护程序在特定用户下运行,实现者必须在 /var/run 中创建一个新目录,chown 和 chgrp 以使我的守护程序运行。将 pidfile 保持在本地(对守护程序)似乎更容易。

最佳答案

我不会将 pidfile 放在应用程序安装目录下,例如 /opt/my_app/whatever .该目录可以只读方式挂载,可以在机器之间共享,可以被守护进程监视,该守护进程将那里的任何更改视为可能的入侵尝试……

pidfiles 的正常位置是/var/run .大多数 unice 会在启动时清理这个目录;在 Ubuntu 下,这是通过 /var/run 实现的内存中的文件系统 (tmpfs)。

如果你从一个以 root 身份运行的脚本启动你的守护进程,让它创建一个子目录 /var/run/gmooredaemon并在 su 之前将其 chown 给运行守护进程的用户发送给用户并启动守护进程。

在许多现代 Linux 系统上,如果您从不是以 root 身份运行的脚本或启动器启动守护程序,您可以将 pidfile 放在 /run/user/$UID 中。 ,这是传统 /var/run 的每用户等效项.请注意,启动器的 root 部分,或以 root 身份运行的引导脚本需要创建目录(对于人类用户,该目录是在用户登录时创建的)。

否则,请在 /tmp 下选择一个位置或 /var/tmp , 但这会带来额外的复杂性,因为如果 pidfile 的名称在全局可写目录中,则无法唯一确定它。

无论如何,让分发者或管理员更容易(命令行选项,加上编译时选项)更改 pidfile 位置。

关于linux - 我的 pidfile 必须位于/var/run 中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5173636/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com