Как запускать скрипт каждый раз, когда я вхожу и разблокирую сессию
В 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, которые я хочу запустить при входе в систему.