14

Как заставить скрипт автоматически выполняться при входе в систему? Не тогда, когда машина запускается, и не для всех пользователей, а только тогда, когда я (или любой конкретный пользователь со сценарием) регистрируюсь через пользовательский интерфейс GNOME.

Читая в другом месте, я подумал, что это был .bash_profile в моем домашнем каталоге, но для меня это не имеет никакого эффекта. Когда я вручную запускаю его в окне терминала, набирая ~/.bash_profile он работает, но не запускается автоматически при входе в систему.

Я использую Ubuntu 11.04. Разрешение файла для моего .bash_profile - -rwx------ . Нет .bash_profile существовал в моем домашнем каталоге, прежде чем я создал его сегодня.

Кажется, я помню старые версии Linux, имеющие файл .profile для каждого пользователя, но это тоже не работает.

Как это сделать? Нужно ли настраивать что-то еще, чтобы заставить работать .bash_profile? Или сценарий входа для пользователя должен быть в каком-то другом файле?

5 ответов5

11

Вы можете просто добавить следующую команду в Система> Настройки> Запускаемые приложения:

bash /full/path/to/your/script.sh

Это должно делать свое дело ;)

7

Поэтому, в основном, как предложил nodiscc , создайте панель запуска рабочего стола: ~/.config/autostart/script.desktop со следующим содержимым:

[Desktop Entry]
Type=Application
Name=Autostart Script
Exec=autostart
Icon=system-run
X-GNOME-Autostart-enabled=true

Затем создайте скрипт автозапуска: ~/bin/autostart с вашим содержимым bash:

#!/bin/bash
# Execute bash script below

Убедитесь, что ~/bin/autostart является исполняемым

5

Вы можете добавить строку в crontab -

crontab -e

Затем добавьте эту строку в открываемый файл:

@reboot /path/to/your/cool/script

Это запустит скрипт при перезагрузке. Для более подробной информации смотрите man crontab

1

Попробуйте ~/.xinitrc (некоторая информация здесь: https://wiki.archlinux.org/index.php/Xinitrc ). Помните, что все, что вы запускаете в этом скрипте, должно запускаться / запускаться в фоновом режиме, иначе это может помешать входу в систему X.

-1

Расширяя ответ @JuanSebastianTotero.

Вместо:

bash /full/path/to/your/script.sh

Пытаться

sh /full/path/to/your/script.sh

bash не работал для меня в Ubuntu 13.04 и 14.04 . Но sh делает.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .