有没有什么奇淫技巧防止 Linux 程序多开?

2022 年 3 月 8 日
 zmqiang

除了文件(端口、数据文件等)占用互斥以外,有没有其他方式可以防止一个 Linux 可执行文件,被执行多次形成多个进程?

5199 次点击
所在节点    程序员
22 条回复
westoy
2022 年 3 月 8 日
防多启的话锁一下 pid 文件就行了

授权限制的话无解的吧, 别人可以放虚拟机里跑啊
0o0O0o0O0o
2022 年 3 月 8 日
先默认你只是要实现这个功能,而不是用这个防破解,那就 shared memory
lisongeee
2022 年 3 月 8 日
不好意思偏个题,那叫 《奇技淫巧》不叫 《奇淫技巧》
ivanshaoaz
2022 年 3 月 8 日
flock
oneegg
2022 年 3 月 8 日
以前我们用过一个工具,根据网卡 Mac 生成授权(防止在多台机器上运行),然后单机上占用端口(其实单机也无所谓了,不会有太多性能)。或者参考下 oracle 根据 cpu 线程数授权?
triptipstop
2022 年 3 月 8 日
服务端授权
Kilerd
2022 年 3 月 8 日
file lock 或者 socket file lock
ch2
2022 年 3 月 8 日
用 flock 锁一个 session ,得不到锁的退出
ETiV
2022 年 3 月 8 日
虚拟机太重了,放 docker 里就行
3dwelcome
2022 年 3 月 8 日
列出 process tree ,查自己的名字。
codehz
2022 年 3 月 8 日
把内存吃满,cpu 跑满不就跑不了了?(划掉
启动后把文件删掉(划掉
还可以用抽象 socket (也就 unix socket 但是地址第一个字符是\0 )(也划掉
WeiYuanStudio
2022 年 3 月 8 日
@lisongeee 你不纠正这个,我都没发现,大脑语义已经自动进行纠错了。
zmqiang
2022 年 3 月 8 日
@lisongeee 学习了,没想到一直用错了🤦‍♂️
LeeReamond
2022 年 3 月 9 日
@WeiYuanStudio 汉语顺序不响影读阅啊
ffgrinder
2022 年 3 月 9 日
我看过一种实践,就是程序运行之后会写一个 lock 文件,退出的时候删除。然后第二次运行的时候会因为这个文件存在而报错?
ohmycorolla
2022 年 3 月 9 日
@lisongeee 我关注到的也是这个 哈哈哈哈
Davic1
2022 年 3 月 9 日
在启动新进程之前 ,先 ps 检查一下有没有同名进程存在, 如果有, 先 kill 在启动.
sadfQED2
2022 年 3 月 9 日
除非服务端授权,不然无解吧,因为可以放虚拟机或者 docker 里面跑啊
nmap
2022 年 3 月 9 日
flock 是正解,简单稳定可靠,生产环境都在用
killva4624
2022 年 3 月 9 日
还是得上授权……不然我打个 Docker 镜像就随便用了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.xtra.eu.org/t/838924

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX