当Foreman(Procfile)停止运行时,如何使mysqld停止运行

时间:2014-09-11 01:37:05

标签: ruby-on-rails foreman mysql procfile

我有一个简单的Rails应用程序的Procfile:

web: rails server -p $PORT
worker: bundle exec rake jobs:work
mysql: /usr/local/bin/mysqld --log-error=/dev/stout

所有流程都正确启动,这很棒。但是当我用CTRL-C停止Foreman时,mysqld不会停止。它一直在后台运行。

当Foreman停止时,如何让mysqld停止?

是否有另一种通过命令行启动mysql的方法,这种方法可行,我不知道?

2 个答案:

答案 0 :(得分:4)

经过一些谷歌搜索后,我在这里找到了答案:

https://dba.stackexchange.com/a/53062/2566

mysql: /usr/local/bin/mysqld --gdb

答案 1 :(得分:0)

在我的计算机上,停止MySQL大约需要6秒钟,但是工头会在5之后自动发送function expand(action) { searchContainer.classList[action]('expanded'); } button.addEventListener('click', function() { expand('add');input.focus(); }, false); input.addEventListener('blur', function() { expand('remove') }, true); ,因此在运行SIGKILL时,您需要延长foreman之前的时间}。我用了10秒,YMMV。

SIGKILL

<强> mysql.sh

foreman start -t 10

<强> Procfile

trap 'brew services stop mysql' INT TERM

ps aux | grep -v grep | grep -i mysqld

if [ $? -eq 0 ]
then
  echo "MySQL is already running"
else
  echo "Starting MySQL"
  brew services start mysql
fi

# https://unix.stackexchange.com/a/42911
sleep 2147483647