2016-02-02 11 views
0

В Start Script when Gnome Starts Up было задано вопрос о том, как автоматически запускать скрипт для входа в gnome. Но как автоматически остановить длинный сценарий при выходе из системы, который был запущен при входе в систему? В моем случае есть два процесса при первом входе в систему. Интересно, что начатый процесс сначала не находится в режиме gnome-session.Стоп-скрипт при завершении сеанса gnome

ответ

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 для более мягких способов завершения процесса).

Возможно, это не решение, чтобы остановить процесс. Но чтобы это не начиналось дважды.