Мне нужно запустить сценарий 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
), и первое, что он делает, это проверяет наличие файла: если файл существует, скрипт уже запущен (так что выйдите). Если нет, запустите сценарий и коснитесь файла.
Это также позволяет удалить файл, чтобы сценарий снова запустился позже.