|
|
1
20
最常见的方法是创建一个pid文件:定义文件的位置(在/var/run中是常见的)。成功启动后,您将把PID写入此文件。在决定是否启动时,读取文件并检查以确保引用的进程不存在(或者如果存在,它不是守护进程的实例:在Linux上,您可以查看
你可能会发现,有一些脚本可以帮助你做到这一点。
|
|
|
2
5
使用 boost interprocess library 创建将由进程创建的内存块。如果它已经存在,则意味着存在该进程的另一个实例。出口。 你所需要的更精确的链接是 this one .
|
|
|
3
3
如果您有权访问代码(即正在编写代码):
如果不这样做:
|
|
|
4
2
我不知道您的确切要求是什么,但我有一个类似的要求;在这种情况下,我从shell脚本(它是一台HP-UX机器)启动了我的守护程序,在启动守护程序之前,我检查了同名的exec是否已经在运行。如果是的话,那就不要重新开始。 通过这种方式,我还能够控制流程的实例数量。 |
|
|
5
2
我认为这个方案应该有效(而且对撞车也很有效):
步骤5中的循环确保,如果同时启动两个实例,则在最后只运行一个实例。 |
|
|
6
0
有一个PID文件,在启动时执行
另一种方法是绑定到端口,并在第二次尝试启动守护程序时处理绑定异常。如果端口正在使用中,则退出,否则继续运行守护程序。 |
|
|
7
-1
我认为我的解决方案是最简单的: (如果比赛条件是可能的情况,不要使用它,但在任何其他情况下,这是一个简单而令人满意的解决方案)
|
|
|
sk123 · Shell脚本-如何在循环中显示变量名及其值 2 年前 |
|
|
sai · unix中使用python进行数据重组 2 年前 |
|
|
FangQ · 如何使用jq打印由制表符“\t”分隔的JSON数组元素 2 年前 |
|
|
ROHAN · 我想显示包含一个括号的行,包括它的开头或结尾 2 年前 |
|
Geomicro · 删除模式sed之间的逗号 2 年前 |