2012-07-11 114 views
1

在Ubuntu服務器上啓動mysql之前,我需要運行另一個腳本來設置一些東西。 mysql由Upstart系統啓動。我從來沒有聽說過Upstart,但現在我已經閱讀了文檔,我認爲有幾種選擇可以實現,但我會感謝更有經驗的Upstart用戶確認或以其他方式得出我的結論。Ubuntu Upstart - 在啓動MySQL之前運行腳本

在以下四個選項中,我傾向於最後一個選項,因爲它不涉及更改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 

感謝, 保羅

回答

2

你最後的想法是完全正確的:

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 

的上直到所述上啓動任何任務開始的事件塊任務完成。