Я использую AWS EC2 и добавил дополнительный том EBS. В настоящее время монтируется как новое устройство.
MySQL и Redis DB хранят свои данные на новом томе EBS, и они регистрируются в chkconfig
. Поэтому мне нужно, чтобы том был смонтирован ПЕРЕД chkconfig
служба запускается.
Но я не хочу добавлять его в свой /etc/fstab
, как сказано на форуме ниже. https://forums.aws.amazon.com/message.jspa?messageID=304528#304528
Итак, я добавил mount /dev/xvdf /data
в моем /etc/rc.d/rc.local
, и я перезагрузил свою систему.
Но видимо chkconfig
сервисы запускаются ДО /etc/rc.d/rc.local
, и поэтому запуск MySQL и Redis терпит неудачу.
Я хочу знать, где я могу написать сценарий инициализации, который называется ПЕРЕД chkconfig
служба запускается.
Заранее спасибо.
Как вы могли заметить, rc.local обычно является последним скриптом, который выполняется в процессе загрузки. Об этом говорится в комментариях к сценарию.
Судя по упоминанию о chkconfig
в вашем вопросе, я думаю, вы используете CentOS, Linux на базе RHEL от Amazon или другую производную от Red Hat (или Fedora). Если это так, то вы можете просто проигнорировать то, что Cindy @ AWS сказала в этой ветке.
Монтирование локальных файловых систем в RHEL выполняется сценарием /etc/rc.sysinit, который монтирует все файловые системы, не являющиеся NFS, CIFS (SMB) или какой-либо другой сетевой файловой системой. Это делается путем выполнения следующей строки в скрипте:
action $"Mounting local filesystems: " mount -a -t nonfs,nfs4,smbfs,ncpfs,cifs,gfs,gfs2 -O no_netdev
Эта строка выполняет mount и дает указание попытаться смонтировать все устройства, которые не соответствуют ни одному из типов файловой системы nfs, nfs4, smbfs, ncpfs, cifs, gfs или gfs2. Кроме того, он игнорирует все устройства с _netdev в их параметрах в fstab.
Когда команда mount пытается смонтировать любую файловую систему, которая не существует, она не блокируется, но выдает следующее сообщение об ошибке:
# mount -a -t nonfs,nfs4,smbfs,ncpfs,cifs,gfs,gfs2 -O no_netdev`
mount: special device /dev/fhsd does not exist
В моем случае / dev / fhsd - это строка в fstab, которая выглядит так:
/ dev / fhsd / mnt ext4 по умолчанию 0 0
Как видите, этот сбой не блокирует процесс монтирования, и ОС не будет блокировать ожидание устройства, он просто выйдет из строя.
Есть еще один сценарий, который заботится о монтировании сетевых файловых систем в /etc/init.d/netfs, и он обрабатывает все файловые системы, в параметрах которых есть _netdev.
В Ubuntu есть проблема с отсутствующими устройствами, и вам нужно добавить nobootwait
(также см. этот вопрос о nobootwait и nofail в Unix.SE), чтобы указать, что процесс загрузки ОС не должен завершаться ошибкой, если устройство отсутствует, но в Ubuntu монтирование выполняется с помощью mountall (1).
Вы можете указать chkconfig, какой порядок выполнять init.d
скрипты через комментарий в скрипте.
Напишите сценарий init.d для монтирования / размонтирования и его выполнения перед MySQL и Redis при загрузке и после MySQL и Redis при завершении работы.