我有一个简单的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的方法,这种方法可行,我不知道?
答案 0 :(得分:4)
答案 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