Как автоматически выполнить скрипт оболочки при входе в Ubuntu


15

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

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

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

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

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


.bash_profile, .profile и .bashrc (который фактически используется ubuntu) загружаются каждый раз, когда вы открываете терминал bash. Так что на самом деле я не уверен, что они будут загружены, если вы просто войдете в GDM.
Хуан Себастьян Тотеро

Размещение вашей версии Ubuntu может помочь. В Ubuntu 10.10 .bashrc «работает на меня (ТМ)».
Vlueboy

Вы имеете в виду, когда вы входите в GUI или в оболочку?
Хлипкий

bash загружает их при запуске новой оболочки, поэтому они загружаются только при открытии окна терминала или входа в виртуальный терминал, а не при входе в Gnome (GDM).
shifttycow

Я использую Ubuntu 11.04, как я упоминал в оригинальном вопросе.
Майк Роуав

Ответы:


11

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

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

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


Знаете что, я делал это раньше, и это не сработало ... за исключением того, что я не писал "bash" до пути сценария! Я попробую это с bash позже. Из любопытства, когда вы вводите что-то через графический интерфейс в Startup Applications, в каком файле это регистрируется?
Майк Роуав

Программы запуска должны быть зарегистрированы в/etc/xdg/autostart
shifttycow

Добавление bash /home/myusername/scriptnameв «Startup Applications» сработало! Благодарю. Однако это может быть характерно для GNOME в Ubuntu, поэтому мне было интересно узнать, где регистрируются записи в этом пункте меню «Startup Applications», так как в других современных версиях Linux это более вероятно.
Майк Ровав

2
/etc/xdg/autostartпредставляется общесистемным файлом, не специфичным для пользователя.
Майк Ровав

Для более поздних версий Ubuntu см. Askubuntu.com/questions/159887/…
TooTone

8

Поэтому, в основном, как предложил 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


Я не знаю почему, но я не могу выполнить файлы .sh в «запускаемых приложениях», поэтому самый простой способ сделать это сейчас - это cron
Альберт Катала


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.