Back

thin + nginx 在linux 重启后自动启动的脚本.

发布时间: 2016-11-16 12:55:00

很多朋友使用了 thin 或者 rbenv之后,发现无法愉快的让rails 随着linux 的启动而启动. 

记住几点即可: 

1. 让PATH中包含 rbenv的路径

2. 调试时多查看:  /var/logs/boot.log   文件

具体过程如下:

1. 新建文件 /etc/init.d/start_rails_servers : (注意下面代码前几行不可缺少)

#!/bin/bash
source /root/.bashrc
export PATH=/root/.rbenv/shims:/root/.rbenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
echo "path is: "
echo $PATH
cd /opt/app/upload.tuling.siwei.tech/ && bundle exec thin restart -C config/thin.yml

如果希望root 用 普通用户身份运行某个命令的话, 使用:

su -c 'touch ~/lala.txt' shensiwei 

这样, 就可以发现, 新增了这个文件:  /home/shensiwei/lala.txt

2. 为该脚本加上可执行的权限

$ chmod +x /etc/init.d/start_rails_servers

3. 更新linux 的启动代码

$ update-rc.d start_rails_servers defaults

好了, 现在你的linux 启动时, 就会自动启动rails 应用了. 

如何取消自动重启, 又不必删除它? 

echo manual >> /etc/init/redis-server.override  

echo manual >> /etc/init/mysql.override

Back