转贴在linux中将goagent配置为系统服务

goagent这个开源软件相当给力,平时访问youtube与facebook得靠它了。为了方便使用goagent,我将goagent配置为ubuntu系统服务,只要一开机进入桌面就随时使用它访问被墙的网站。

第一步,将goagent安装至/opt/goagent-2.1.11,将/opt/goagent-2.1.11/local/proxy.py配置可执行权限: sudo chmod +x /opt/goagent-2.1.11/local/proxy.py;
第二步,以root用户权限在/etc/init.d下创建新脚本,命名为goagent,并且配置可执行权限:sudo touch /etc/init.d/goagent sudo chmod +x /etc/init.d/goagent ;
第三步,编辑/etc/init.d/goagent文件,录入下面脚本内容:
#! /bin/sh
### BEGIN INIT INFO
# Provides: goagent
# Required-Start: $remote_fs $all
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: # Short-Description: goagent daemon
### END INIT INFO


PATH=/sbin:/usr/sbin:/bin:/usr/bin
NAME=goagent
DAEMON=/opt/goagent-2.1.11/local/proxy.py
PIDFILE=/var/run/$NAME.pid
. /lib/init/vars.sh
. /lib/lsb/init-functions

do_start()
{
        if [ -f $PIDFILE ]; then
               start-stop-daemon --pidfile $PIDFILE --status
               case "$?" in
                       0)
                               echo "$NAME is running !"
                               return 0
                               ;;
                       1|3)
                               #nothing to do
                               ;;
                       *)
                               echo "unable to determine status !"
                               return 1
                               ;;
               esac
        fi
        echo "starting $NAME ..."
        start-stop-daemon --start --quiet --background --oknodo --exec $DAEMON --make-pidfile --pidfile $PIDFILE
        echo 'done.'
        return 0
}

do_stop()
{
        echo "stopping $NAME ..."
        if [ -f $PIDFILE ]; then
                start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
                rm -f $PIDFILE
        fi
        echo 'done.'
}

do_status()
{
        start-stop-daemon --pidfile $PIDFILE --status
        case "$?" in
                0)
                        echo "$NAME is running!"
                        ;;
                1|3)
                        echo "$NAME is not running!"
                        ;;
                *)
                        echo "unable to determine status!"
                        ;;
        esac
}



case "$1" in
        start)
                do_start
                ;;
        stop)
                do_stop
                ;;
        status)
                do_status
                ;;
        *)
                echo "Usage: $0 start|stop" >&2
                exit 3
                ;;
esac
第四步,配置goagent服务: sudo update-rc.d goagent defaults 99 ; 在这里我将goagent配置为开机启动!

注意: 这里服务级别最好设置成99,别用默认的级别,默认级别为S20,这个级别优先于S50,网络还没有启动,服务会启动失败,等于开机启动无效 了!

最后一步是测试:
启动服务 sudo service goagent start ;
输出 starting goagent ... done.

查看服务状态 sudo service goagent status
输出 goagent is running !

停止服务 sudo service goagent stop ;
输出 stopping goagent ... done.

查看服务状态 sudo service goagent status
输出 goagent is not running !

附上删除服务的方法:sudo update-rc.d -f goagent remove && sudo rm /etc/init.d/goagent .

为了验证一下,可以运行#sysv-rc-conf

没有评论:

发表评论