除了文件(端口、数据文件等)占用互斥以外,有没有其他方式可以防止一个 Linux 可执行文件,被执行多次形成多个进程?
|  |      1westoy      2022-03-08 18:36:47 +08:00 防多启的话锁一下 pid 文件就行了 授权限制的话无解的吧, 别人可以放虚拟机里跑啊 | 
|      20o0O0o0O0o      2022-03-08 18:38:11 +08:00 先默认你只是要实现这个功能,而不是用这个防破解,那就 shared memory | 
|  |      3lisongeee      2022-03-08 18:42:24 +08:00  20 不好意思偏个题,那叫 《奇技淫巧》不叫 《奇淫技巧》 | 
|      4ivanshaoaz      2022-03-08 19:38:57 +08:00  2 flock | 
|      5oneegg      2022-03-08 19:40:02 +08:00 via iPhone 以前我们用过一个工具,根据网卡 Mac 生成授权(防止在多台机器上运行),然后单机上占用端口(其实单机也无所谓了,不会有太多性能)。或者参考下 oracle 根据 cpu 线程数授权? | 
|      6triptipstop      2022-03-08 20:06:00 +08:00 服务端授权 | 
|  |      7Kilerd      2022-03-08 20:28:49 +08:00 file lock 或者 socket file lock | 
|  |      8ch2      2022-03-08 20:31:13 +08:00 用 flock 锁一个 session ,得不到锁的退出 | 
|  |      9ETiV      2022-03-08 20:33:44 +08:00 via iPhone 虚拟机太重了,放 docker 里就行 | 
|  |      103dwelcome      2022-03-08 22:15:27 +08:00 via Android 列出 process tree ,查自己的名字。 | 
|  |      11codehz      2022-03-08 22:17:17 +08:00 via Android 把内存吃满,cpu 跑满不就跑不了了?(划掉 启动后把文件删掉(划掉 还可以用抽象 socket (也就 unix socket 但是地址第一个字符是\0 )(也划掉 | 
|  |      12WeiYuanStudio      2022-03-08 22:45:46 +08:00 @lisongeee 你不纠正这个,我都没发现,大脑语义已经自动进行纠错了。 | 
|  |      14LeeReamond      2022-03-09 07:22:53 +08:00 @WeiYuanStudio 汉语顺序不响影读阅啊 | 
|      15ffgrinder      2022-03-09 09:06:58 +08:00 我看过一种实践,就是程序运行之后会写一个 lock 文件,退出的时候删除。然后第二次运行的时候会因为这个文件存在而报错? | 
|      16ohmycorolla      2022-03-09 09:29:04 +08:00 @lisongeee 我关注到的也是这个  哈哈哈哈 | 
|      17Davic1      2022-03-09 09:42:34 +08:00 在启动新进程之前 ,先 ps 检查一下有没有同名进程存在, 如果有, 先 kill 在启动. | 
|  |      18sadfQED2      2022-03-09 09:58:53 +08:00 via Android 除非服务端授权,不然无解吧,因为可以放虚拟机或者 docker 里面跑啊 | 
|  |      19nmap      2022-03-09 11:04:00 +08:00 flock 是正解,简单稳定可靠,生产环境都在用 | 
|  |      20killva4624      2022-03-09 11:34:14 +08:00 还是得上授权……不然我打个 Docker 镜像就随便用了 | 
|      21wenzhonghu      2022-03-09 12:51:55 +08:00 奇淫技巧确实不好找。。。 | 
|      22ghoul5426      2022-03-09 15:08:25 +08:00 文件锁不挺好的么,现在 linux 里大把进程,也还是用这种方式。 |