关于ubuntu执行shell脚本异常记录

Crazy_Coder 发布于 2014/10/07 00:47
阅读 1K+
收藏 4

1.我在ubuntu安装rabbitmq,手动启动是没问题的,但是总不能每次都手动启动吧,所以我想设置成开机启动

2.由于rabbitmq是使用rabbitmq-server-generic-unix-3.3.5.tar.gz直接使用的,所以在系统中是没有服务存在的

3.我就写了一个shell脚本,如下:

#!/bin/sh
#start rabbitMq
/opt/rabbitmq_server-3.3.5/sbin/rabbitmq-server -detached > /opt/logs/rabbitmq.log

4.然后ln到/etc/init.d下

ln -s /opt/shell/rabbitmq.sh /etc/init.d/rabbitmq

5.再然后设置开机启动

update-rc.d rabbitmq defaults

6.reboot之后,毫无反应

7.后来我又换成在/etc/rc.local下写启动脚本,还是出问题

8.最后没办法,我在/etc/profile.d下或者~/.bashrc下写启动脚本,这时候:
    开机不登录,启动不起来。开机登录了,就启动起来了。
    这个不难理解。

9.难以理解的是,为毛我写在rc.local或者rc*.d就启动不来呢?

10.初步判断,应该是启动的时候需要的一些环境变量没有跑成功,或者是不是erlang没有设置好?

11.所以在这里求解答:能不能在执行shell脚本时,把异常记录下来呢?毫无头绪。
我记录了一部分,可是毫无作用!

/opt/rabbitmq_server-3.3.5/sbin/rabbitmq-server -detached 
> /opt/logs/rabbitmq.log



加载中
0
Crazy_Coder
Crazy_Coder

有办法了,用start-stop-daemon,附上脚本:

#!/bin/sh
#start rabbitMq
#/opt/rabbitmq_server-3.3.5/sbin/rabbitmq-server -detached
DESC="rabbitMq Server"
NAME=rabbitMq
RABBITMQ_HOME=/opt/rabbitmq_server-3.3.5
PIDFILE=$RABBITMQ_HOME/$NAME.pid
RUN_AS=root
RUN_PARAMS="-detached"
EXEC_COMMAND=$RABBITMQ_HOME/sbin/rabbitmq-server

d_start() {
    start-stop-daemon --start --quiet --verbose --oknodo --background --make-pidfile --pidfile $PIDFILE --exec $EXEC_COMMAND
}

d_stop() {
    start-stop-daemon --stop --quiet --pidfile $PIDFILE
    if [ -e $PIDFILE ]
        then rm $PIDFILE
    fi
}

case $1 in
    start)
    echo -n "Starting $DESC: $NAME\n"
    d_start
    echo "."
    ;;
    stop)
    echo -n "Stopping $DESC: $NAME\n"
    d_stop
    echo "."
    ;;
    restart)
    echo -n "Restarting $DESC: $NAME\n"
    d_stop
    sleep 1
    d_start
    echo "."
    ;;
    *)
    echo "usage: $NAME {start|stop|restart}"
    exit 1
    ;;
esac

exit 0

启用:./rabbitmq.sh start
停止:./rabbitmq.sh stop
重启:./rabbitmq.sh restart

返回顶部
顶部