Как запускать скрипт каждый раз, когда я вхожу и разблокирую сессию

В Saucy salamander мне нужно запускать скрипт каждый раз, когда я вхожу в систему, а затем каждый раз, когда я разблокирую сеанс после ручной блокировки или автоматического сна. Я не могу использовать "Startup Application" для этого, потому что оно не сработает при разблокировке.

2 ответа

Решение

Нашел это, которое сделал пользователь форумов Ubuntu opus1. Может быть, это может помочь.


Вот что пост дает в качестве решения:

Для тех, кто заинтересован, вот что я сделал: я посмотрел журналы (в частности, /var/logs/auth.log) и увидел, что запись делается, когда пароль проверяется и принимается. Мой журнал сказал:

Aug  7 14:10:57 mumble gnome-screensaver-dialog: gkr-pam: unlocked login keyring

В конечном итоге я нашел приложение под названием "Swatch", которое отслеживает журнал и запускает скрипт, когда указанная вами строка появляется в этом журнале. Swatch требуется файл конфигурации (.swatchrc), и мой выглядит так:

watchfor /unlocked login keyring/
  exec /root/.gnome2/nautilus-scripts/wakeServer

где "/unlocked login keyring/" - искомая строка, а "exec" определяет скрипт, который будет запущен при его обнаружении. Мой скрипт wakeServer выглядит так:

#!/bin/bash

#wake the server
wakeonlan AA:BB:CC:DD:EE:FF

#record info in the log file
myVar="woke server at login:"
echo "$myVar">>/home/me/.serverWake.log
date>>/home/me/.serverWake.log

где "AA:BB:CC:DD:EE:FF" - это MAC-адрес моего сервера.

Образец необходимо вводить как запускаемое приложение (создайте запись в Системе | Настройки | Запускаемые приложения с именем "runSwatch") и выполните команду "swatch --tail-file /var/log/auth.log --daemon".. (В Debian, только root может читать журналы, поэтому перед командой запуска необходимо ввести "sudo", а образец необходимо добавить в файл sudoers без пароля. В Ubuntu, похоже, пользователи без полномочий root могут читать журналы. Может быть проблема безопасности с предоставлением бесполезного доступа к образцу, но в моем случае это кажется приемлемым).

Пока это сработало отлично!

.bashrc будет местом, которое вы хотите использовать для этого процесса. .bashrc содержит профиль пользователя и все конфигурации, и это то, что система прочитает первым, когда вы войдете в систему, поэтому именно здесь вы хотите поместить свои коды для своих пользовательских сценариев, которые будут выполняться при входе в систему.

Вот пример из моих кодов, которые я использую. Это код, который я добавил в нижнюю строку.bashrc:

if [ -f ~/.myscripts ]; then
. ~/.myscripts
fi

А также .myscripts хранит мои скрипты в оболочке bash, которые я хочу запустить при входе в систему.

Другие вопросы по тегам