gnome会话结束时停止脚本

时间:2016-02-02 14:23:29

标签: bash gnome autostart

Start Script when Gnome Starts Up中,有人询问如何在gnome登录时自动启动脚本。但是如何在登录时自动停止长时间运行的脚本,这是在登录时启动的?在我的情况下,当我两次登录时有两个进程。有趣的是,首先启动的进程不再位于gnome-session下。

1 个答案:

答案 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)。

这可能不是停止该过程的解决方案。但要防止它开始两次。