Где и как настраиваются команды запуска в Linux?

1

Я хотел бы добавить пользовательские команды запуска (например, запуск процесса, регистрация на сервере регистрации, загрузка файла конфигурации) в процесс запуска Linux. Эти команды должны запускаться только при запуске. Каков стандартный / подходящий способ сделать это?

РЕДАКТИРОВАТЬ: / etc / profile является правильным местом для запуска таких вещей?

EDIT2: я использую Ubuntu.

Jan Deinhard
источник
/etc/profile для начала новой терминальной сессии; это не имеет ничего общего с загрузкой.
chrisaycock
1
Linux разрабатывается децентрализованно. Люди, которые пишут ваши сценарии инициализации, совершенно отделены от людей, которые пишут ваше ядро. Таким образом, разные дистрибутивы имеют разные сценарии инициализации.
asveikau
Запуск чего? Вы имеете в виду «во время или после загрузки»? Вы имеете в виду "Во время или после того, как я войду в систему"? Если вход в систему, вы имеете в виду «войти в локальный терминал»? Вы имеете в виду «Войти через удаленную оболочку»? Вы имеете в виду «Войти из [xkg] dm»? Вы имеете в виду «Запустить X»?
phogg
Linux - это ядро. Мы с вами работаем под управлением операционной системы, которая использует ядро ​​Linux, библиотеки и инструменты Gnu, систему окон X11, Gnome this и Openoffice that. Поскольку все (большинство) компонентов, выполняющих проект Gnu (Gnu - это метапроект, делающий все программное обеспечение свободным программным обеспечением), мы можем называть операционные системы Gnu с Linux или Gnu / Linux (существуют другие системы, использующие Linux, другие ядра, которые можно использовать с Gnu).
ctrl-alt-delor

Ответы:

3

Никто не может ответить на этот вопрос, не зная, какой тип Linux вы используете.

В Debian (и основанной на Debian системе, такой как Ubuntu), вы запускаете скрипт запуска с именем foo в каталог /etc/init.dтогда вы звоните update-rc.d foo defaults, Обязательно проконсультируйтесь со справочной страницей, чтобы понять, что происходит.

MPi
источник
2

в этом система обрабатывает запуск. Тем не менее, этот вопрос принадлежит superuser.com или serverfault.com.

Ex Umbris
источник
Однако большинство систем используют init, например, Slackware /etc/rc.d/* система, но все еще поддерживает использование init!
user32178
Другой пример: Ubuntu использует Upstart.
Dennis Williamson
@ Денис Уильямсон, они даже не поддерживают сценарии инициализации?
user32178
@Anders: Upstart имеет устаревшую поддержку init скрипты.
Dennis Williamson
Нет, вопрос не относится к ошибкам суперпользователя или сервера; это законный вопрос программирования, на который люди, занимающиеся упаковкой программного обеспечения для Linux, должны знать ответ.
MarkR
1

/Etc/rc.local - это простое место, где можно разместить скрипт (хотя его используют не все дистрибутивы) для запуска во время загрузки системы.

bitwelder
источник
0

Это зависит от того, какой именно дистрибутив вы используете. В redhat-подобных системах вы помещаете свой служебный файл в /etc/init.d, затем используете chkconfig --add, чтобы добавить его, и он запустится при загрузке в соответствующее время.

В некоторых системах Linux также есть cron, который поддерживает расширение @reboot, которое запускает задание при запуске системы. Вы можете установить crontabs, используя "crontab" или (как очень полезное расширение Redhat) в каталоге /etc/cron.d. Смотрите man (5) crontab, man (8) cron и man (1) crontab для более подробной информации.

Если это постоянно запущенный процесс, я бы установил его как службу в стиле sysv.

MarkR
источник