diff --git a/systemctl/service/udp2raw-client@.service b/systemctl/service/udp2raw-client@.service index c14344c..3e77789 100644 --- a/systemctl/service/udp2raw-client@.service +++ b/systemctl/service/udp2raw-client@.service @@ -9,8 +9,9 @@ User=root # 设置服务运行的用户 Group=root # 设置服务运行的用户组 KillMode=control-group # 定义systemd如何停止服务 PIDFile=/usr/local/udptools/pid/udp2raw-c%i.pid # 存放PID的绝对路径 -Restart=no # 定义服务进程退出后,systemd的重启方式,默认是不重启 -ExecStart=/usr/local/udptools/udp2raw-c%i.sh # 服务启动命令,命令需要绝对路径 +Restart=no # 定义服务进程退出后,systemd的重启方式,默认是不重启 +ExecStart=/usr/local/udptools/udp2raw-c%i.sh start # 服务启动命令,命令需要绝对路径 +ExecStop=/usr/local/udptools/udp2raw-c%i.sh stop # 服务停止命令,命令需要绝对路径 PrivateTmp=true # 表示给服务分配独立的临时空间 [Install] diff --git a/systemctl/service/udp2raw-server@.service b/systemctl/service/udp2raw-server@.service index ba5b8c9..7a6cfee 100644 --- a/systemctl/service/udp2raw-server@.service +++ b/systemctl/service/udp2raw-server@.service @@ -9,8 +9,9 @@ User=root # 设置服务运行的用户 Group=root # 设置服务运行的用户组 KillMode=control-group # 定义systemd如何停止服务 PIDFile=/usr/local/udptools/pid/udp2raw-s%i.pid # 存放PID的绝对路径 -Restart=no # 定义服务进程退出后,systemd的重启方式,默认是不重启 -ExecStart=/usr/local/udptools/udp2raw-s%i.sh # 服务启动命令,命令需要绝对路径 +Restart=no # 定义服务进程退出后,systemd的重启方式,默认是不重启 +ExecStart=/usr/local/udptools/udp2raw-s%i.sh start # 服务启动命令,命令需要绝对路径 +ExecStop=/usr/local/udptools/udp2raw-s%i.sh stop # 服务停止命令,命令需要绝对路径 PrivateTmp=true # 表示给服务分配独立的临时空间 [Install] diff --git a/systemctl/service/udpspeeder-client@.service b/systemctl/service/udpspeeder-client@.service index 7f9266f..c9a436f 100644 --- a/systemctl/service/udpspeeder-client@.service +++ b/systemctl/service/udpspeeder-client@.service @@ -8,9 +8,10 @@ Type=forking # 表示后台运行模式。 User=root # 设置服务运行的用户 Group=root # 设置服务运行的用户组 KillMode=control-group # 定义systemd如何停止服务 -PIDFile=/usr/local/udptools/pid/udpspeeder-c%i.pid # 存放PID的绝对路径 -Restart=no # 定义服务进程退出后,systemd的重启方式,默认是不重启 -ExecStart=/usr/local/udptools/udpspeeder-c%i.sh # 服务启动命令,命令需要绝对路径 +PIDFile=/usr/local/udptools/pid/udpspeeder-c%i.pid # 存放PID的绝对路径 +Restart=no # 定义服务进程退出后,systemd的重启方式,默认是不重启 +ExecStart=/usr/local/udptools/udpspeeder-c%i.sh start # 服务启动命令,命令需要绝对路径 +ExecStop=/usr/local/udptools/udpspeeder-c%i.sh stop # 服务停止命令,命令需要绝对路径 PrivateTmp=true # 表示给服务分配独立的临时空间 [Install] diff --git a/systemctl/service/udpspeeder-server@.service b/systemctl/service/udpspeeder-server@.service index cdd4bc7..7a4ef67 100644 --- a/systemctl/service/udpspeeder-server@.service +++ b/systemctl/service/udpspeeder-server@.service @@ -9,8 +9,9 @@ User=root # 设置服务运行的用户 Group=root # 设置服务运行的用户组 KillMode=control-group # 定义systemd如何停止服务 PIDFile=/usr/local/udptools/pid/udpspeeder-s%i.pid # 存放PID的绝对路径 -Restart=no # 定义服务进程退出后,systemd的重启方式,默认是不重启 -ExecStart=/usr/local/udptools/udpspeeder-s%i.sh # 服务启动命令,命令需要绝对路径 +Restart=no # 定义服务进程退出后,systemd的重启方式,默认是不重启 +ExecStart=/usr/local/udptools/udpspeeder-s%i.sh start # 服务启动命令,命令需要绝对路径 +ExecStop=/usr/local/udptools/udpspeeder-s%i.sh stop # 服务停止命令,命令需要绝对路径 PrivateTmp=true # 表示给服务分配独立的临时空间 [Install] diff --git a/udptools.sh b/udptools.sh index 54af60b..a728897 100644 --- a/udptools.sh +++ b/udptools.sh @@ -41,7 +41,7 @@ if [ ! -d "/usr/local/udptools/conf" ]; then mkdir /usr/local/udptools/conf fi -buildServer() +build_Udp2raw_Server() { #写入Udp2Raw配置 cat > /usr/local/udptools/conf/udp2raw-s${MPORT}.conf < /dev/null 2>&1 PID=`cat $PID_FILE` kill $PID >/dev/null 2>&1 + sleep 1 status } showLog(){ @@ -151,6 +153,20 @@ EOF chmod +x /usr/local/udptools/udp2raw-s${MPORT}.sh +#判断服务模式 +if pgrep systemd-journal > /dev/null; then + if [ ! -f "/usr/lib/systemd/system/udp2raw-server@.service" ]; then + cp ./systemctl/service/udp2raw-server@.service /usr/lib/systemd/system/ + fi + systemctl enable udp2raw-server@${MPORT}.service + systemctl start udp2raw-server@${MPORT}.service +else + SYSTEMCTL=0 +fi +} + +build_UdpSpeeder_Server() +{ #写入UdpSpeeder脚本 cat > /usr/local/udptools/udpspeeder-s${MPORT}.sh <> /usr/local/udptools/udp2raw-s${MPORT}.sh <<"EOF" +cat >> /usr/local/udptools/udpspeeder-s${MPORT}.sh <<"EOF" status(){ PID=`ps aux|grep -e "$CONFIG"|grep -v sudo|grep -v grep | awk '{print $2}'` if [ ! -n "$PID" ]; then @@ -188,8 +204,10 @@ start(){ } stop(){ #结束进程 + status > /dev/null 2>&1 PID=`cat $PID_FILE` kill $PID >/dev/null 2>&1 + sleep 1 status } showLog(){ @@ -223,17 +241,18 @@ log) esac exit 0 EOF +chmod +x /usr/local/udptools/udpspeeder-s${MPORT}.sh - #判断服务模式 - if pgrep systemd-journal > /dev/null; then - SYSTEMCTL=1 - else - SYSTEMCTL=0 +#判断服务模式 +if pgrep systemd-journal > /dev/null; then + if [ ! -f "/usr/lib/systemd/system/udpspeeder-server@.service" ]; then + cp ./systemctl/service/udpspeeder-server@.service /usr/lib/systemd/system/ fi - echo $PASSWD - echo $RPORT - echo $MPORT - echo $LPORT + systemctl enable udpspeeder-server@${MPORT}.service + systemctl start udpspeeder-server@${MPORT}.service +else + SYSTEMCTL=0 +fi } buildClient() @@ -343,6 +362,7 @@ case $RUNMODE in echo"" done - buildServer + build_Udp2raw_Server + build_UdpSpeeder_Server ;; esac