Ubuntu Upstart — запуск скрипта перед запуском MySQL

Перед запуском mysql на сервере Ubuntu мне нужно запустить еще один скрипт, который настраивает несколько вещей. mysql запускается системой Upstart. Я никогда не слышал об Upstart, но теперь я прочитал документацию и думаю, что есть несколько вариантов того, как этого можно достичь, но я был бы признателен, если бы более опытный пользователь Upstart подтвердил или опроверг мои выводы.

Из четырех приведенных ниже вариантов я предпочитаю последний, поскольку он не требует изменения задания mysql.conf.

mysql.conf:
pre-start script
    mkdir -p /mnt/mysql
    [ -L /var/lib/mysql ] || ln -s /mnt/mysql /var/lib/mysql
    /usr/bin/mysql_install_db --user=mysql
chown mysql:mysql /var/lib/mysql/mysql/.
chown mysql:mysql /var/lib/mysql/mysql/*
end script

mysql.conf
pre-start exec /var/myscriptfile (where myscriptfile contains mkdir -p /mnt/mysql etc)

mysql.conf
start on started mysql-primer
(where mysql-primer is an Upstart job that does mkdir etc)

mything.conf
start on starting mysql
task
script
    mkdir -p /mnt/mysql
    [ -L /var/lib/mysql ] || ln -s /mnt/mysql /var/lib/mysql
    /usr/bin/mysql_install_db --user=mysql
chown mysql:mysql /var/lib/mysql/mysql/.
chown mysql:mysql /var/lib/mysql/mysql/*
end script

Спасибо, Пол.


person user265330    schedule 11.07.2012    source источник


Ответы (1)


Ваша последняя идея совершенно правильная:

мифинг.конф:

start on starting mysql
task
script
    mkdir -p /mnt/mysql
    [ -L /var/lib/mysql ] || ln -s /mnt/mysql /var/lib/mysql
    /usr/bin/mysql_install_db --user=mysql
    chown mysql:mysql /var/lib/mysql/mysql/.
    chown mysql:mysql /var/lib/mysql/mysql/*
end script

Стартовое событие блокирует любые задачи, которые запускаются на нем, до тех пор, пока указанные задачи не будут завершены.

person SpamapS    schedule 07.09.2012