Назад | Перейти на главную страницу

Как запустить скрипт при первой загрузке?

Мне нужно запустить сценарий bash только один раз при первой загрузке (после установки ОС) моей машины CentOS. Этот сценарий должен запускаться перед запуск сетевой службы (поскольку этот сценарий изменяет конфигурацию сети) Как я могу зарегистрировать свой сценарий для запуска до запуска сетевой службы?

Если вы посмотрите на строку «chkconfig» в /etc/init.d/network, вы увидите, что сеть имеет начальный приоритет «10».

/etc/init.d/yourscript:
#!/bin/bash
#
# yourscript  short description
# 
# chkconfig: 2345 9 20
# description: long description

case "$1" in
  start)
    Do your thing !!!
    chkconfig yourscript off
  ;;
  stop|status|restart|reload|force-reload)
    # do nothing
  ;;
esac

Тогда беги chkconfig yourscript on чтобы запустить его при загрузке. В chkconfig yourscript off внутри скрипта следует отключить его выполнение при любой последующей загрузке.

В некоторых версиях CentOS / RHEL / Fedora есть программа "firstboot", которую вы можете попробовать использовать, но это похоже на боль.

Вы уверены, что не можете запустить скрипт реконфигурации сети внутри сообщения% при кикстарте? Это то, чем я занимаюсь.

Простой ответ: вставь это /etc/init.d (символическая ссылка на /etc/rc#.d), и первое, что он делает, это проверяет наличие файла: если файл существует, скрипт уже запущен (так что выйдите). Если нет, запустите сценарий и коснитесь файла.

Это также позволяет удалить файл, чтобы сценарий снова запустился позже.