Перейти к содержимому
GitHub

Автозагрузка

Alt-U или Команда → Автозагрузка показывает всё, что настроено запускаться само: при загрузке системы, при входе, по расписанию или при каждом запуске оболочки или входе по SSH. Последнее изменение идёт первым, поэтому всё, что недавно добавили или правили, оказывается наверху. Как и монитор процессов, этот экран входит во встроенный плагин «Система». Список занимает активную панель, а другая панель подробно показывает выбранный элемент.

В каждой строке видно, когда файл менялся в последний раз, место и что запускается. На широкой панели добавляются владелец файла и то, на месте ли программа: есть или нет, если указанного пути не существует. На отсутствующую программу стоит взглянуть: любой файл, который кто-то позже положит на её место, запустится с правами этого элемента. Столбец Правила называет правила, с которыми совпал элемент, окрашивая их по уровню, и появляется, как только хотя бы один элемент совпал с правилом. Строка над списком считает элементы и сколько из них совпало с правилами.

Подробности показывают файл и строку, что запускает элемент, программу и где Borg её нашёл, когда элемент запускается словами самого файла (RunAtLoad, @reboot, расписание или цель systemd), от имени какого пользователя, владельца файла и точное время изменения. В разделе Правила у каждого совпадения указано, где оно найдено, в его файле или в его программе, что ищет правило, когда оно срабатывает на безобидное и откуда правило взято. Элемент, отключённый в собственном файле, показан приглушённо, а в подробностях сказано Отключён в собственном файле, поэтому не запускается.

Клавиша Действие
Enter, Alt-O Открыть папку файла элемента рядом со списком
F3 / F4 Просмотр / правка файла элемента
/ Фильтр строк; ↑↓ по-прежнему перемещают, Enter оставляет фильтр, Esc сбрасывает его
R Перечитать все места
Ctrl-C Скопировать то, что запускает элемент
Alt-W Развернуть список
Esc Закрыть экран, сохранив фильтр

Enter или двойной щелчок открывает на другой панели папку файла элемента и ставит курсор на файл, а список остаётся как был. Tab переключает между списком и файлами, а Esc в списке или Alt-U возвращает подробности. Фильтр оставляет элементы, в которых есть все введённые слова: в месте, имени, в том, что запускается, в пути к файлу, во владельце, в пользователе, от имени которого идёт запуск, во времени запуска, в есть или нет и в названиях совпавших правил. Поставьте ! перед словом, чтобы исключить то, что оно находит: root !timer оставит элементы root, кроме таймеров. У каждого места есть ещё короткое имя для фильтра и для агентов, например launch-daemon, systemd-timer или ssh-authorized-key.

В macOS:

  • Агент пользователя: ~/Library/LaunchAgents.
  • Агент launchd и Демон launchd: /Library/LaunchAgents и /Library/LaunchDaemons.
  • Системный агент и Системный демон: /System/Library/LaunchAgents и /System/Library/LaunchDaemons, на запечатанном системном томе.
  • Задание cron: crontab-файлы в /usr/lib/cron/tabs и /etc/crontab.
  • Скрипт periodic: ежедневные, еженедельные и ежемесячные скрипты в /etc/periodic и /usr/local/etc/periodic.

В Linux:

  • Служба и Таймер: юниты systemd в /etc/systemd/system, /usr/local/lib/systemd/system, /usr/lib/systemd/system и /lib/systemd/system, а также юниты, на которые их папки .wants и .requires ссылаются из любого другого места.
  • Служба пользователя и Таймер пользователя: /etc/systemd/user, /usr/local/lib/systemd/user, /usr/lib/systemd/user, ~/.config/systemd/user и ~/.local/share/systemd/user.
  • Автозапуск: desktop-файлы в ~/.config/autostart и /etc/xdg/autostart.
  • Задание cron: /etc/crontab, /etc/cron.d и crontab-файлы в /var/spool/cron/crontabs или /var/spool/cron.
  • Скрипт cron: /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly и /etc/cron.monthly.
  • Задание anacron: /etc/anacrontab.
  • rc.local: /etc/rc.local.
  • Предзагрузка: /etc/ld.so.preload, библиотеки, которые загружаются в каждую запускаемую программу.
  • Запуск оболочки: скрипты в /etc/profile.d, помимо файлов ниже.

В обеих системах Запуск оболочки охватывает файлы запуска zsh, bash и fish в вашей домашней папке, например ~/.zshrc, ~/.bashrc, ~/.profile и ~/.config/fish/config.fish, и их общесистемные версии в /etc. Ключ SSH перечисляет каждый ключ из ~/.ssh/authorized_keys и ~/.ssh/authorized_keys2 с его комментарием и с командой, которую ключ навязывает, если она есть.

Borg читает эти места с вашими правами. Место, которое существует, но закрыто для вас, показано внизу списка как Не удалось прочитать с его путём; чтобы заглянуть внутрь, запустите Borg от имени администратора. Исключение составляет ваш собственный crontab: если папка crontab-файлов закрыта для вас, как в macOS, Borg запрашивает его через crontab -l.

Программа, указанная полным путём или через ~/, помечается как нет, если там ничего нет. Имя без папки ищется в /usr/local/sbin, /usr/local/bin, /usr/sbin, /usr/bin, /sbin и /bin, где ищут cron и launchd. У относительного пути или имени, которого нет ни в одной из этих папок, стоит —: элемент может задавать собственный путь поиска.

Borg проверяет своими правилами и вашими (см. Проверка файлов правилами) первые 1 MiB каждого файла автозагрузки и каждую программу размером до 64 MiB. Программа, которую запускают многие элементы, проверяется один раз. Программы элементов Системный агент и Системный демон не проверяются, потому что запечатанный системный том ничто не меняет, пока работает macOS, и в их подробностях об этом сказано. Если файл правил не компилируется, внизу списка указано, сколько файлов пропущено.

Руководство описывает ветку main · Borg 0.11.0 · 1f6bce6
В последнем выпуске может быть не всё, что здесь описано. Список изменений

Перевод с английского. Будем рады исправлениям. Команды и сочетания клавиш не переводятся.