是否存在用于存储以用户身份运行的守护进程的pid文件的首选位置?/var/run是标准位置,但这是用于用户守护进程的,因此它不具有写权限。据推测,我的守护进程将从.profile或.bashrc或其他东西开始。只是将它保存到/ tmp一个坏主意?以用户身份存储守护进程的pid文件
回答
如果它正在为用户运行,那么让我们来看看存在哪种用户特定的存储。
嗯。
就是这样!主目录。我知道它最终会来到我身上:-)
对不起,轻刺拳。说真的,我只是将PID存入$HOME/.daemon.pid
或~/.daemon.pid
(当然,你如何命名该文件取决于你)。
这当然,假设您将只有一个守护进程为用户运行。如果没有,你需要有点棘手。
并希望减少你的担心,用户会在不经意间自己的主目录中删除未知文件,这就是为什么你把它“隐藏”通过与.
字符开始吧。
大多数没有经验的用户甚至不应该使用请参阅这些和有经验的用户应该知道的比他们更好。
那么用户看到的是hom目录,我认为他们会更有可能删除该文件,如果他们看到它不知道它是什么 – Falmarri 2010-10-18 07:40:15
@Falmarri:那有什么危险?如果您真的需要再次使用PID,您可以随时查看进程表。 PID文件只是一个方便。 – 2010-10-18 07:42:48
这就是为什么你把'.'放在它前面。不知道自己在做什么的用户可能永远不会知道它存在。如果他们经常看到隐藏文件,只要在删除'.bashrc'时出错就会教他们错误的方法:-)如果你是_really_偏执狂,把PID放入'〜/ .dont_EVER_delete_me_or_you_WILL_be_sorry/.daemon.pid' 。 – paxdiablo 2010-10-18 07:43:17
我建议你去用户的主目录内的子目录。
~/.programname/.pid
如果有任何其他用户的配置数据,可以存储在这里也一样,为了避免弄乱主目录。
XDG Basedir specification定义你应该在哪里存储这些。
变量$XDG_RUNTIME_DIR
定义它的位置,虽然它没有默认值。
最常见的回退(如果变量未设置)为/tmp/service-$USER.id
。
这有助于保持整洁的宿主目录,同时保持在
- 1. 如何以特定用户身份运行Ruby守护进程?
- 2. Python:使用PID文件进行守护进程
- 3. 查找守护进程的PID?
- 4. 没有PID文件竞争条件的Linux守护进程
- 5. 存储文件由守护进程下载
- 6. Git守护进程和Windows身份验证
- 7. 将Android杀死我的守护进程是以root身份运行吗?
- 8. 在守护进程线程中创建的进程的主线程是守护进程本身吗?
- 9. 创建存储用户PID的.pid文件
- 10. python守护进程,不写入文件
- 11. 如何捕获从init.d运行的Linux守护进程的pid
- 12. 以用户身份运行的守护程序无人需要从桌面复制文件
- 13. 如何指定守护进程的日志和pid目录?
- 14. Bash:获得守护进程屏幕会话的PID
- 15. 如何在init脚本中获得perl守护进程的PID?
- 16. Linux守护进程
- 17. iphone守护进程
- 18. Python守护进程
- 19. 如何确保HDFS和YARN守护进程以不同的Unix用户身份运行?
- 20. 守护进程的内存分析
- 21. 使用python,守护进程
- 22. 用Clojure/JVM守护进程
- 23. 如何从父perl守护进程获取pid?
- 24. 使用守护进程发送邮件
- 25. Linux守护进程停止启动 - 停止守护进程
- 26. 定时器()作为守护进程与非守护进程
- 27. 无法以根用户身份运行守护进程::控制perl脚本。 @INC不正确(perlbrew)
- 28. MacOsX:如果守护程序以根用户身份运行,从守护程序启动使用NSWorkspace的应用程序不起作用
- 29. Windows的Docker守护进程
- 30. FreeBSD的守护进程库
所有运行时的数据保存到/ tmp也是白搭,因为任何命名约定你会发明(例如'/ tmp目录// .pid')可能已经被另一个应用程序使用,你将无法创建该文件。在'/ tmp'下使用一个随机的dirname会破坏pid文件的想法 - 能够在不扫描进程列表的情况下快速获取pid。 –
2012-08-15 16:26:21