В Saucy salamander мне нужно запускать скрипт каждый раз, когда я вхожу в систему, а затем каждый раз, когда я разблокирую сеанс после ручной блокировки или автоматического сна. Я не могу использовать «Startup Application» для этого, потому что оно не сработает при разблокировке.
Найден этот , который был сделан пользователем Ubuntu Forums 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-адрес моего сервера.
Swatch необходимо будет ввести в качестве запускаемого приложения (создайте запись в Системе | Настройки | Запускаемые приложения с именем «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, которые я хочу запустить при входе в систему.