Как я запускаю скрипт на входе в систему/выходе из системы Единицы?

У меня есть два сценария - один для монтирования некоторых папок по SSHFS - и один для размонтирования.

Я хотел бы запустить сценарий монтирования, когда мой рабочий стол Ubuntu по умолчанию запускается (после того, как я вхожу в систему в графической консоли) - и сценарий размонтирования, когда я "Выхожу из системы..." зубчатого колеса в верхнем правом из рабочего стола.

Кто-то может сказать мне, как достигнуть этого? Что самые удобные/стандартные рычаги к командам выполнения на настольном запуске / выход?

8
задан 15 November 2016 в 09:15

3 ответа

Решение состояло в том, чтобы использовать новомодные задачи. Я потребовал двух задач - один запущенный, когда рабочий стол инициализирует для пользователя; второе, когда пользовательская сессия истекает. Следующие две работы сценариев для меня в соответствии с Ubuntu 14.04.

В ~/.config/upstart/desktopOpen.conf

description "Desktop Open Task"
start on desktop-start
task
script
# Commands to mount sshfs go here as shell-script.
end script

В ~/.config/upstart/desktopClose.conf

description "Desktop Close Task"
start on session-end
task
script
# Commands to unmount sshfs go here as shell-script.
end script

, Мои пальцы скрещены, что эти события продолжат отвечать требованиям в будущих релизах Ubuntu. Я думал это стоящий регистрации мое решение здесь - в случае, если это полезно для других.

1
ответ дан 23 November 2019 в 05:41

Рассмотрение Вашего требования выполнения задания, когда Вы входите в систему к Единице а не для других логинов, Выскочка задание сессии , кажется прекрасным.

Вы, возможно, заметили его: процессы, что Вы бежите за входом в систему GUI, младше секунды init процесс. Это init является надлежащей Выскочкой init, и можно запустить и остановить задания сессии на основе событий, испускаемых им. Никакие полномочия пользователя root не необходимы вообще. Еще лучше (или хуже в зависимости от перспективы), это полностью еще не поддерживается для бездисплейных систем. Вход в систему SSH не запустил пользователя init с быстрого теста, который я сделал сейчас.

Для создания задания сессии сделайте новое .conf файл в ~/.config/upstart. Это - основной каталог по умолчанию для Новомодных заданий сессии ($XDG_CONFIG_HOME/upstart), создайте его, если не существует. Вот задание в качестве примера:

tee ~/.config/upstart/myjob.conf <<EOF
description "My job"
start on desktop-start
stop on desktop-end

script 
       firefox 'http://upstart.ubuntu.com/cookbook/#session-job'
end script
EOF

можно вручную управлять им:

start myjob 
# or
initctl start myjob

Эти service команда привыкли к заданиям системы управления (те в /etc/init.d или /etc/init). Для управления заданиями сессии нужно использовать initctl команда, которая используется для взаимодействия с Выскочкой.

Видят man upstart-events для большего количества событий, которые можно использовать.

9
ответ дан 23 November 2019 в 05:41

Вот некоторые предложения для выполнения сценария после входа в систему:

сценарий StackOverflow Linux после начальной загрузки : примечания Утеса должны поместить Ваш *.sh файл в/etc/profile.d.

, Если Вы хотите выполнить сценарии после начальной загрузки, вот некоторые предложения для этого:

сценарий StackOverflow Linux после начальной загрузки : примечания Утеса должны использовать/etc/rc.local или crontab.

-1
ответ дан 23 November 2019 в 05:41

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

Похожие вопросы: