LINUX.ORG.RU
ФорумAdmin

autostart'ы в совремённом Linux

 ,


12

7

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

Уже не уверен, что все их знаю. Решил составить список, может кто чего скажет ещё по его поводу. Поскольку ориентируюсь на Debian, не исключено есть какие-то особенности в иных дистрах.

  1. /etc/init.d  — (rc.0-6) — классическое место для init-скриптов для запуска разных демонов. + rc.local
  2. cron — /etc/crontab запуск чего-то по расписанию кроном и его клонами.
  3. /etc/systemd/system — сервисы, которые запускает systemd
  4. etc/xdg/autostart/ — приложения, запускаемые при загрузке десктопа, а вообще есть (но может и не быть, но автозагрузка иметься) системная переменная $XDG_CONFIG_DIRS
  5. /etc/profile, а также скрипты внутри /etc/profile.d — запускаются bash подобными оболочками.
  6. ~/.bashrc ~/.profile и ~/.bash_logout при разлогинивании
  7. /etc/X11/xinit/xinitrc — запускается X-ами, но если есть ~/.xinitrc запускается он.
  8. /etc/X11/xinit/xserverrc — тоже может запускаться
  9. /etc/gdm3/Xsession (gdm — для старых) если gdm3 менеджер, соответственно есть ещё: /usr/share/config/kdm/Xsession и другие
  10. Автозапуск графическими оболочками, кроме автостарта десктопа есть ещё, например, автозапуск гномом (и прочими), например для гнома и кде в /usr/share/applications и для текущего пользователя в ~/.config/autostart/ для кде ещё и в ~/.config/plasma-workspace/shutdown и ~/.config/plasma-workspace/env
  11. Вообще в графических оболочках может быть дохренища всяких автозапусков на разные случаи прописано в отдельных настройках, например, в гномореестре: скринсейверы, приложения при нажатии кнопки Power и т.д.
  12. Модули ядра. Загрузка прописывается в /etc/modules — сами модули лежат в подкаталогах /lib/modules/`uname -r`/ с расширением .ko
  13. Может быть раздел в (U)EFI — BIOS, оттуда что-то тоже может стартануть, причём даже после загрузки ядра, если правильно понял. Как фича работает пока толком не понял.
  14. /etc/udev/rules.d — менеджер устройств в Linux.
★★★★★

Последнее исправление: beastie (всего исправлений: 4)

Ответ на: комментарий от pawnhearts

Собственно да, но это рядом с init.d, хотя и не одно и тоже да.

anonymous_incognito ★★★★★
() автор топика
Ответ на: комментарий от anonymous

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

anonymous_incognito ★★★★★
() автор топика

Linux сделался похож на винду

Ну и чего общего со стройной продуманной системой имеет описанная тобой вермишель с окурками?

thesis ★★★★★
()

/etc/udev/rules.d - я бы туда зловредов пихал: вставил мышь, а у тебя таблица разделов потёрлась. Казалось бы какая связь.

anonymous
()

1) Список не полон, как минимум еще у systemd еще много мест, да и тема user-сессий не раскрыта.

2) Список избыточен, так как скатился в некачественное перечисление всех скриптов, которые хоть когда-нибудь, да выполняются. Фу таким быть.

3) В чем посыл-то?

t184256 ★★★★★
()
Последнее исправление: t184256 (всего исправлений: 1)

Если надо чтобы был один расово верный autoexec.bat, то до сих пор поддерживается init=/bin/bash.

d_a ★★★★★
()
Ответ на: комментарий от thesis

Список знатный =)

Но там, например, не указан файл boot.ini, а в некоторых параметрах (/HAL /KERNEL) в нём тоже можно прописать фактически отдельный запуск разных штук.

anonymous_incognito ★★★★★
() автор топика
Ответ на: комментарий от t184256

По п.1 надо дополнять. По п.2 - структурировать, может действительно все скрипты не стоит писать в отдельные пункты, потому что список может стать бесконечным, например, можно модули апача перечислить, от СУБД разных и т.д.

3) В чем посыл-то?

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

anonymous_incognito ★★★★★
() автор топика
Ответ на: комментарий от anonymous_incognito

С твоим подходом ответом будет «в результате исполнения исполняемых файлов», и то не полным. Перед структурированием надо жестко фильтрануть, хотя бы до «откуда принято запускать резидентные программы», а то и куда уже.

t184256 ★★★★★
()

cron - /etc/crontab запуск чего-то по расписанию кроном и его клонами.

Плохая практика. Пользовательские хранятся в /var/spool/cron

andrew667 ★★★★★
()
Ответ на: комментарий от t184256

Тогда, наверное, так:

Откуда появляется или может появиться резидентно или эпизодически всё то, что явным образом не запускается вручную пользователем.

anonymous_incognito ★★★★★
() автор топика
Ответ на: комментарий от anonymous_incognito

Стало хуже, ибо стало даже шире.

Осторожно, ты начинаешь давать определения в стиле ОБЖ: «опасными веществами являются тяжелые наркотические, легкие наркотические, алкогольные и другие вещества, способные вызвать привыкание у молодежи, детей и граждан других возрастов».

t184256 ★★★★★
()
Ответ на: комментарий от t184256

Ну как ещё иначе объяснить? Вот libreoffice у меня автоматом не стартует, а avahi-daemon - да. И gdm3 - да. Или Gnome Zeitgeist - тоже автоматом. Вот и хочется найти все места откуда запуститься может то, с чем работаем.

anonymous_incognito ★★★★★
() автор топика
Ответ на: комментарий от t184256

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

anonymous_incognito ★★★★★
() автор топика
Ответ на: комментарий от anonymous_incognito

Откуда появляется или может появиться резидентно

systemd-cgls?

или эпизодически

auditctl -S execve и читать логи auditd?

А потом и списочки можно составлять.

d_a ★★★★★
()

Надо создать одно единственное стандартное место, откуда будет производиться автозапуск.

Gu4
()

/etc/init.d - да, системные ранлевелы. крон сюда не в кассу. Систумд идет лесом. 80% остального - запуск шелла либо графики. проблем не вижу

upcFrost ★★★★★
()
Ответ на: комментарий от anonymous_incognito

boot.ini мёртв, то, что пришло ему на смену скорее аналогично скриптам в initrd.

x3al ★★★★★
()

Linux сделался похож на винду

Да нууу

1. /etc/init.d - (rc.*)
2. /etc/profile + /etc/bash.bashrc они же в ~
3. /etc/X11/xinit/*
4. cronы, atы, /etc/modules и /etc/udev/rules.d - как экзотика

Ну и харе наверное вникать, не ?

/etc/systemd/system

Что это?

Автозапуск графическими оболочками

Приходилось лезть в гуёвые автостарты чаще чем раз в пятилетку ? - не поверю.

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

netinst/minimal..

masq
()
5 августа 2017 г.

Т.к. эта тема на первой странице поиска по запросу «linux autostart» оставлю здесь свой случай, может кому пригодится.

Поддерживаю,такой список необходим. Ибо вот начал у меня Dropbox сам запускаться, хотя я его убирал из автозапуска, правда уже не помню из какого то ли ~/.config/autostart/ то ли sudo ls /etc/xdg/autostart/

А он опять всплыл! Только в этот раз из-за сессий KDE 5 - отключается в System settings -> Startup & Shutdown -> Fesktop Session -> Start with an empty session Инфа об этом находится в ~/.config/ksmserverrc В общем сессия почему-то заглючила и даже если я останавливал Dropbox перед выключением, он всё равно запускался! -__-

FreeWebber
()

Ты еще забыл фигову тучу шелл-скриптов в /{,usr/bin} и абсолютно всё вызовы system(3) в бинарниках.

Разупорись. Не, конечно, никто тебе не запрещает собрать минимальную прозрачную систему на busybox с init'ом из одного единственного шелл-скрипта, но зачем?

Достаточно просто не ставить лишнего (в идеале — вообще отлючить Recommends) и более-менее понимать как работает система.

Для поиска «что и почему запустилось» вполне достаточно pstree или htop. Ну и не ставить никаких левых реп и пакетов (а если и ставить, то с оглядкой). В крайнем случае, всегда есть etckeeper, debsums, apparmor и неймспейсы.

ShizuShidou
()

вроде в ворохе еще не перечисляли ) при желании можно еще что-нибудь запустить:

- через init в grub.cfg

- в автозагрузке оконного менеджера

:)

vaddd ★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.