小编rea*_*ebo的帖子

检测工具是否已在执行但仅适用于当前用户

直到现在我用

pidof -o %PPID -x "my-tool"
Run Code Online (Sandbox Code Playgroud)

检测最终运行的 my-tool 实例的 pid。

这是 my-tool 文件的简短版本,一个可执行的 bash 脚本

#!/bin/bash 

if pidof -o %PPID -x "my-tool"; then
   echo "Already running"
   exit 1
fi

 ... if not running go on 
Run Code Online (Sandbox Code Playgroud)

但是现在我需要允许每个用户有一个实例,每个机器多个实例,所以我们甚至可以在同一时刻运行 100 个 my-tool,但每个用户只能运行 1 个。

请注意,我需要一个测试来创建类似单例的东西。如果该工具将启动并且有另一个实例正在运行,它将自行关闭。

简而言之:我需要一个 bash 脚本可以检测自身是否已经为当前用户运行,在这种情况下它必须退出。

如何 ?

bash

8
推荐指数
2
解决办法
1884
查看次数

标签 统计

bash ×1