问题##
希望把Rails server 注册成windows server,开机自启动
环境##
windows 10,Rails 5.0.1 , puma
尝试##
原来是做成bat了,每次使用的时候,需要使用时,手动双击打开,然后有一个窗口挂着。然后看着窗口不舒服,后来在启动命令后加了一个做为守护进程的参数,没窗口了,舒服了。命令如下
rails s -d
但又想做成系统服务,做了如下尝试:
1、使用sc命令:
sc create rails_serv binPath="d:\ruby\rails\rails_serv.bat"
sc config start=AUTO
net start rails_serv
然后就提示:服务没有响应控制功能。
第一次尝试失败。
2、使用第三方工具,这里使用了一个国外的工具和一个国内的工具,分别是:AlwaysUp和SrvanyUI(作者:王晔),但是都没有成功。使用这两个软件,服务添加成功了,也启动起来了,但是rails 程序跑不起来!
3、使用第三方工具把bat转换成exe之后,进行第2条尝试,结果一样。
三次尝试都失败了。
分析##
通过查询资料,得出的原因可能是因为windows 10上对做为服务启动的程序,要求比win7及以前的操作系统更严格了,要严格按照服务程序的规范来写程序。不过vs已经删除了,临时也没有时间再次安装,所以等下次玩C#的时候,再尝试吧。
解决##
退而求其次,以开机启动程序的方式加载rails 服务,方法如下:
1.创建bat文件快捷方式
2.进入C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
3.把快捷方式放入2中所示目录内
OK!