在Start Script when Gnome Starts Up中,有人询问如何在gnome登录时自动启动脚本。但是如何在登录时自动停止长时间运行的脚本,这是在登录时启动的?在我的情况下,当我两次登录时有两个进程。有趣的是,首先启动的进程不再位于gnome-session下。
答案 0 :(得分:0)
我将在一个简单的bash脚本中包装执行的二进制文件,该脚本将已启动进程的pid保存在临时文件中。如果此文件已存在,则会跳过应用程序的开头。由于文件保存在/tmp
目录中,因此一旦重新启动计算机,一切都将被删除。
#!/bin/bash
binary="git-cola"
temp_file="/tmp/my_${binary}_instance.pid"
if [[ -f ${temp_file} ]]
then
echo "PID exists"
else
exec ${binary} &
echo $! > ${temp_file}
fi
稍微努力一下,您可以检查进程的pid是否仍在运行,并再次在登录时重新启动它(例如,如果进程崩溃或其他用户关闭它)。
我实际上并没有使用Gnome,所以我无法告诉你是否有更优雅的方法来杀死这个过程。像一个注销钩子。但是一旦你获得了保存过程的pid,你就可以用kill -9 PID
来杀死它。 (有关更温和的方法来结束此过程,请参阅man kill
)。
这可能不是停止该过程的解决方案。但要防止它开始两次。