Ubuntu Upstart - 在 MySQL 启动之前运行脚本

标签 ubuntu upstart

在 Ubuntu 服务器上启动 mysql 之前,我需要运行另一个脚本来设置一些东西。 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

谢谢,
保罗

最佳答案

你的最后一个想法是完全正确的:

神话.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

启动事件会阻止任何在其上启动的任务,直到所述任务完成。

关于Ubuntu Upstart - 在 MySQL 启动之前运行脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11436790/

相关文章:

bash - "sh runMyCode.sh"不以 "for n in {10..99}"格式循环

linux - 启动终端并在重启后从 systemd 执行脚本

linux - 通过 crontab 安排 UpStart 初始化脚本

javascript - Ubuntu 8.04 Hardy 和 node.js Upstart 脚本

django - 让 Django 在 VirtualEnv 中通过 Upstart 运行

logging - 启用 Upstart 日志输出

python - 我无法在 Ubuntu VM 的 IDLE 中访问新安装的 python 3 模块/库

python - Django manage.py 返回 AttributeError

postgresql - 没有错误,无限加载 : where should I search?

php - 我的 php 程序没有将上传的图像移动到目录(ubuntu)