拾壹-Linux下Rserve开机自启动

一、奇怪的开端

为什么我要这样做?
这是一个谜团,可能因为我无聊,也可能因为我真的实在太无聊,可是就这样了。
我实在喜欢上R语言了,对比Python来说,这个挑战难度太大了!!

二、Linux开机自启动

其实一般来说,Linux开机自启动有几种方式,相信我,我都试过了,例如Systemd 入门教程:命令篇、centos7 tomcat service 自启动、Linux中如何自动启动服务、在Linux中利用Service命令添加系统服务及开机自启动,甚至Supervisor(我知道是不适合这种没有托管的后台程序)等我都试过了,我是绝了个望。

三、寻找错误

在找寻中间,我发现在/etc/init.d下生成一个服务的方法还是可行的哦(因为之前nginx就是这样自启动的),甚至如果不是开机启动而是手动service rserve start是可以启动的!但为什么就是没办法开机自启动呢?
试了好久之后,发现估计是脚本写错了,我尝试用其他的服务脚本去改,诶!居然有点起色----->出现了新的错误!

四、新的错误其实也是好的嘛

知道有新的错误就可以解决新的错误嘛,新的错误就是:Fatal error: you must specify '--save', '--no-save' or '--vanilla'
上网已搜,这错误是属于R报出来的,就是说我的脚本是可以运行的而只是R那里出错了,结果出来了,只要在我的脚本那里加上一个选项参数--no-save就行了,结果,可以了。

五、自启动脚本

/etc/init.d目录下,生成一个rserve脚本,脚本内容如下:

#!/bin/bash
# chkconfig: 2345 05 98
# description: Start Rserve
### BEGIN INIT INFO
# Provides:          rserve
# Required-Start:    $network
# Required-Stop:     $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
### END INIT INFO

start() {
        /usr/local/lib64/R/bin/R CMD /home/Berry/R/x86_64-pc-linux-gnu-library/3.2/Rserve/libs//Rserve  --no-save
}

stop() {
    true
}

case "$1" in
    start)
       start
       ;;
    stop)
       stop
       ;;
    restart)
       stop
       start
       ;;
    status)
       ;;
    *)
       echo "Usage: $0 {start|stop|status|restart}"
esac
exit 0

六、我实在是太无聊了

我觉得我很无聊啊,怎么办?
有没有工作邀请我去做?
我在找工作啊!!

七、Rserve

其实对于Rserve来说,自启动是不是必须呢?因为毕竟这也不是一个稳定的平台(有时候需要重启),但既然只是一个想用来找工作的平台我觉得也没什么所谓了,对吧?

你可能感兴趣的:(拾壹-Linux下Rserve开机自启动)