
1 knightdf 2016 年 10 月 31 日 1,写 pid 2,检查进程 |
2 firebroo 2016 年 10 月 31 日 via Android pid |
3 mooncakejs 2016 年 10 月 31 日 在 /tmp 目录下 创建一个独占文件,不能独占就说明有实例存在 |
4 tt0411 2016 年 10 月 31 日 独占一个端口 |
5 LazyZhu 2016 年 10 月 31 日 Linux 一般用 /run/lock or /var/run 等目录的 .lock 来管理。 |
6 eslizn 2016 年 10 月 31 日 进程互斥锁 |
7 tabris17 2016 年 10 月 31 日 CreateMutex |
8 dearmymy 2016 年 10 月 31 日 1,findwindow 2,互斥锁 |
9 Clarencep 2016 年 10 月 31 日 文件锁+1 文件锁比较通用。 |
10 paw 2016 年 10 月 31 日 命名管道也行,检查管道存在,而且还可以用来传送新启动进程的参数 |
11 lxm 2016 年 10 月 31 日 flock |
12 chenzhiwei 2016 年 10 月 31 日 via Android 可以用 dbus API ,类似这样的: dbus.essionBus().request_name(xxx) 每次启动都先检查这个东西 |
13 TaMud 2016 年 10 月 31 日 pid 写入文件 启动检测文件里的 pid 是否在运行,是否同一个程序名称 |
14 windydays 2016 年 10 月 31 日 一般是用 flock(), O_CREAT|O_RDWR 打开一个文件,然后 flock( LOCK_EX|LOCK_NB ) http://stackoverflow.com/questions/2964391/preventing-multiple-process-instances-on-linux http://stackoverflow.com/questions/5339200/how-to-create-a-single-instance-application-in-c-or-c https://github.com/qtproject/qt-solutions/tree/master/qtsingleapplication/src |
15 wshn13 2016 年 10 月 31 日 @chenzhiwei 对 我们就是这样做过 |
16 likuku 2016 年 10 月 31 日 简单的,可以先运行个系统的 ps 配合 awk,grep,wc 统计当前系统有多少个同名进程,大于 1 即 执行 sys.exit() |
17 lijianying10 2016 年 10 月 31 日 为什么不写成服务呢? 比如说用 systemd 或者 supervisor 托管起来。这样就可以在主机内可限定进程数量的运行了。还不用改你的脚本。 |