需要关于Unix启动脚本的帮助

我在unix shell脚本上非常薄弱。 有没有一种方法可以创buildUnix shell脚本,该脚本将仅在服务器启动时启动 ,并按顺序执行以下命令:

# cd /mysql # ./bin/safe_mysqld --user=root & # ./support-files/mysql.server start 

更长的故事…在HP-UX服务器上,我安装了Mysql。 然而,客户希望服务器安装在/mysql而不是/usr/local/mysql/这是标准位置。 在上个星期我一直在努力设置mysql守护进程在服务器启动时自动启动。

我不知道是什么问题,但到目前为止,启动服务器的唯一方法是使用上述命令。


更新:07.02.12 15:23

在启动进程时,这是服务器启动时的短输出:

 Start MySQL Server .................................................. OK ... 

但是,当我进入ps -ef我可以很容易地知道它没有启动:

 # ps -ef | grep -i mysql root 3074 3056 0 15:26:53 pts/0 0:00 grep -i mysql # 

这是我开始这个过程时的样子:

 # cd mysql # ./bin/safe_mysqld --user=root & [1] 3123 # Starting mysqld daemon with databases from /mysql/data # # ./support-files/mysql.server start Starting MySQL SUCCESS! # # ps -ef | grep -i mysql root 3139 3123 0 15:27:19 pts/0 0:00 /mysql/bin/mysqld --basedir=/mysql --datadir=/mysql/data --u root 3123 3056 0 15:27:19 pts/0 0:00 /bin/sh ./bin/safe_mysqld --user=root root 3171 3056 0 15:27:59 pts/0 0:00 grep -i mysql # 

现在我想更清楚为什么我要创build一个shell启动脚本,并用这些命令实际强制启动进程

二进制文件在启动时需要知道my.cnf文件的位置(默认会编译)。 你没有说build立mysql时使用的path前缀。 my.cnf文件又定义了数据文件的位置。

使用适当的SysV初始化脚本来pipe理服务器是个好主意。 除了解决在启动时启动服务器的问题之外,当系统暂停时,您也可以实现干净的closures,您可以为不同的运行级别configuration合理的行为,并以pipe理的方式单独停止/启动mysql服务器。 如果你设置正确,它将与SAM很好地发挥。

这里有一个例子 (注意my.cnf的位置作为parameter passing给safe_mysqld)。 这应该在/sbin/init.d中,在/sbin/rcX.d(其中X是相关的运行级别)中带有适当的(符号)链接。 这个过程在这里描述 。

我认为最干净的事情,如果这是你的select,是重新编译MySQL。

在源代码目录(从压缩包中提取):

 ./configure --prefix=/mysql make && sudo make install