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


1

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

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

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


/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, Обязательно проконсультируйтесь со справочной страницей, чтобы понять, что происходит.


2

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


Однако большинство систем используют init, например, Slackware /etc/rc.d/* система, но все еще поддерживает использование init!
user32178

Другой пример: Ubuntu использует Upstart.
Dennis Williamson

@ Денис Уильямсон, они даже не поддерживают сценарии инициализации?
user32178

@Anders: Upstart имеет устаревшую поддержку init скрипты.
Dennis Williamson

Нет, вопрос не относится к ошибкам суперпользователя или сервера; это законный вопрос программирования, на который люди, занимающиеся упаковкой программного обеспечения для Linux, должны знать ответ.
MarkR

1

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


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.

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