除了文件(端口、数据文件等)占用互斥以外,有没有其他方式可以防止一个 Linux 可执行文件,被执行多次形成多个进程?
除了文件(端口、数据文件等)占用互斥以外,有没有其他方式可以防止一个 Linux 可执行文件,被执行多次形成多个进程?
|
westoyMar 8, 2022
1
防多启的话锁一下 pid 文件就行了
授权限制的话无解的吧, 别人可以放虚拟机里跑啊 |
|
0o0O0o0O0oMar 8, 2022
2
先默认你只是要实现这个功能,而不是用这个防破解,那就 shared memory
|
|
3
不好意思偏个题,那叫 《奇技淫巧》不叫 《奇淫技巧》
|
|
4
flock
|
|
oneeggMar 8, 2022 via iPhone
5
以前我们用过一个工具,根据网卡 Mac 生成授权(防止在多台机器上运行),然后单机上占用端口(其实单机也无所谓了,不会有太多性能)。或者参考下 oracle 根据 cpu 线程数授权?
|
|
triptipstopMar 8, 2022
6
服务端授权
|
|
KilerdMar 8, 2022
7
file lock 或者 socket file lock
|
|
ch2Mar 8, 2022
8
用 flock 锁一个 session ,得不到锁的退出
|
|
ETiVMar 8, 2022 via iPhone
9
虚拟机太重了,放 docker 里就行
|
|
3dwelcomeMar 8, 2022 via Android
10
列出 process tree ,查自己的名字。
|
|
codehzMar 8, 2022 via Android
11
把内存吃满,cpu 跑满不就跑不了了?(划掉
启动后把文件删掉(划掉 还可以用抽象 socket (也就 unix socket 但是地址第一个字符是\0 )(也划掉 |
|
WeiYuanStudioMar 8, 2022
12
@lisongeee 你不纠正这个,我都没发现,大脑语义已经自动进行纠错了。
|
|
LeeReamondMar 9, 2022
14
@WeiYuanStudio 汉语顺序不响影读阅啊
|
|
ffgrinderMar 9, 2022
15
我看过一种实践,就是程序运行之后会写一个 lock 文件,退出的时候删除。然后第二次运行的时候会因为这个文件存在而报错?
|
|
ohmycorollaMar 9, 2022
16
@lisongeee 我关注到的也是这个 哈哈哈哈
|
|
Davic1Mar 9, 2022
17
在启动新进程之前 ,先 ps 检查一下有没有同名进程存在, 如果有, 先 kill 在启动.
|
|
sadfQED2Mar 9, 2022 via Android
18
除非服务端授权,不然无解吧,因为可以放虚拟机或者 docker 里面跑啊
|
|
nmapMar 9, 2022
19
flock 是正解,简单稳定可靠,生产环境都在用
|
|
killva4624Mar 9, 2022
20
还是得上授权……不然我打个 Docker 镜像就随便用了
|
|
wenzhonghuMar 9, 2022
21
奇淫技巧确实不好找。。。
|
|
ghoul5426Mar 9, 2022
22
文件锁不挺好的么,现在 linux 里大把进程,也还是用这种方式。
|