Список скриптов (местоположений), которые запускаются автоматически, и когда?

Список скриптов (местоположений), которые запускаются автоматически, и когда?

Кто-нибудь знает (из списка ресурсов), какие скрипты запускаются автоматически и когда, с момента запуска компьютера и до его выключения?

Я знаю несколько мест, куда можно добавить скрипты для автоматического запуска, но мне так и не удалось составить более-менее полный список.

Например, я знаю такие:

  • ~/.profileвыполняется при входе в систему
  • Я могу использовать crontab -eдля добавления скриптов, которые будут срабатывать в определенное время и/или в определенные даты.

Но я не могу понять, куда помещать скрипты, чтобы они выполнялись.

  • после загрузки, до инициализации X
  • после инициализации X (или другой графической оболочки), но до того, как кто-либо войдет в систему
  • после входа в сеанс X
  • до/после быстрого переключения пользователей
  • перед выходом из сеанса X
  • перед выключением в оболочке X
  • после выключения X, перед остановкой системы
  • после входа/перед выходом через tty-1..6
  • после входа/перед выходом через SSH

Есть ли такой список? Если нет, то можем ли мы его здесь составить?

решение1

Для Ubuntu Linux у нас есть следующее решение:

  1. Для после загрузки, до инициализации X:Ubuntu запускает X-Windows из GDM (те, кто использует ubuntu-desktop) или из KDM (те, кто использует kubuntu-desktop)

    Чтобы запустить скрипт до GDM/KDM, вам нужно написать свой собственный скрипт upstart. Для этого вы можете прочитатьКулинарная книга Upstart.

  2. После переключения пользователя:Вам необходимо добавить скрипт в ~/.bashrcфайл.

  3. После входа через tty:Вам необходимо добавить скрипт в ~/.bash_profileфайл.

  4. После входа в систему с использованием ssh, но не во время локального входа с использованием tty:В этом случае вам также придется добавить скрипт в тот же ~/.bash_profileфайл, но в этом случае проверьте наличие SSH_CONNECTIONпеременной среды и запускайте команды только в том случае, если вы обнаружите, что она существует.

  5. Перед выходом из системы через tty:Вам необходимо добавить скрипт в ~/.bash_logoutфайл.

  6. Перед выходом из системы через ssh:Вам нужно добавить скрипт в ~/.bash_logoutфайл, но в этом случае также проверьте наличие SSH_CONNECTIONпеременной окружения и запускайте команды только в том случае, если вы обнаружите, что она существует. В файле вам нужно добавить строку

    if [[ -n $SSH_CONNECTION ]]

решение2

Если вас интересуют встроенные задачи Linux, вы также можете обратиться к уровням выполнения Linux, которые представляют собой режим работы, реализующий инициализацию в стиле Unix System V.

  • 0 Halt Выключает систему.
  • 1 Однопользовательский режим Режим для административных задач.
  • 2 Многопользовательский режим Не настраивает сетевые интерфейсы и не экспортирует сетевые службы.
  • 3 Многопользовательский режим с сетевым подключением Запускает систему в обычном режиме.
  • 4 Не используется/Определяется пользователем Для специальных целей.
  • 5 Запустите систему в обычном режиме с соответствующим менеджером дисплея. (с графическим интерфейсом) Как уровень запуска 3 + менеджер дисплея.
  • 6 Перезагрузка Перезагружает систему.

Например, ниже вы можете увидеть частичный список процессов Linux и их настроек уровня выполнения:

chkconfig --list
acpid           0:off   1:off   2:on    3:on    4:on    5:on    6:off
anacron         0:off   1:off   2:on    3:on    4:on    5:on    6:off
atd             0:off   1:off   2:off   3:off   4:off   5:off   6:off
auditd          0:off   1:off   2:off   3:off   4:off   5:off   6:off
autofs          0:off   1:off   2:on    3:on    4:on    5:on    6:off
avahi-daemon    0:off   1:off   2:off   3:off   4:off   5:off   6:off
avahi-dnsconfd  0:off   1:off   2:off   3:off   4:off   5:off   6:off
.
.
.

Связанный контент