当前位置: 代码迷 >> 综合 >> CentOS7上创建自己的开机启动服务
  详细解决方案

CentOS7上创建自己的开机启动服务

热度:24   发布时间:2024-02-26 12:43:59.0

本人有一个自己写的代理用tcp代理服务器,需要随系统启动完成到 目标端口的代理操作

命令为  tcp_proxy -l 20011 -r 182.61.145.146 -p 20011

 

创建服务脚本文件

vi   /usr/lib/systemd/system/wonrowl_proxy.service

写入以下内容

[Unit]
Description=wonrowl proxy install as service test
After=network.target

[Service]
Type=forking
user=root
ExecStart=/root/wonrowl_proxy/start.sh
ExecStop=/root/wonrowl_proxy/stop.sh

[Install]
WantedBy=default.target
 

 

 

服务文件中用到的两个sh脚本内容分别是

#!/bin/bash
/root/wonrowl_proxy/tcp_proxy -l 20011 -r 182.61.145.146 -p 20011 >> /dev/null & 

 

和

 

#!/bin/bash
killall tcp_proxy

 

文件权限我为了省事,全部777

 

-rwxrwxrwx 1 root root  9038 Oct  7 22:47 main.c
-rwxrwxrwx 1 root root    95 Oct  8 14:56 start.sh
-rwxrwxrwx 1 root root    31 Oct  8 14:55 stop.sh
-rwxrwxrwx 1 root root 14336 Oct  7 22:47 tcp_proxy

 

万事具备后

 

执行 systemctl start  wonrowl_proxy

即可启动服务

通过 systemctl status wonrowl_proxy

查看结果

 

● wonrowl_proxy.service - wonrowl proxy install as service test
   Loaded: loaded (/usr/lib/systemd/system/wonrowl_proxy.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2020-10-08 14:58:56 CST; 41s ago
  Process: 577 ExecStart=/root/wonrowl_proxy/start.sh (code=exited, status=0/SUCCESS)
 Main PID: 580 (tcp_proxy)
   CGroup: /system.slice/wonrowl_proxy.service
           └─580 /root/wonrowl_proxy/tcp_proxy -l 20011 -r 182.61.145.146 -p 20011

Oct 08 14:58:56 hecs-x-medium-2-linux-20201005162808 systemd[1]: Starting wonrowl proxy install as service test...
Oct 08 14:58:56 hecs-x-medium-2-linux-20201005162808 systemd[1]: Started wonrowl proxy install as service test.
 

执行 systemctl stop wonrowl_proxy

即可关闭服务

通过 systemctl status wonrowl_proxy

 

[root@hecs-x-medium-2-linux-20201005162808 wonrowl_proxy]# systemctl status wonrowl_proxy
● wonrowl_proxy.service - wonrowl proxy install as service test
   Loaded: loaded (/usr/lib/systemd/system/wonrowl_proxy.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since Thu 2020-10-08 15:07:39 CST; 2s ago
  Process: 1566 ExecStop=/root/wonrowl_proxy/stop.sh (code=exited, status=0/SUCCESS)
  Process: 577 ExecStart=/root/wonrowl_proxy/start.sh (code=exited, status=0/SUCCESS)
 Main PID: 580 (code=killed, signal=TERM)

Oct 08 14:58:56 hecs-x-medium-2-linux-20201005162808 systemd[1]: Starting wonrowl proxy install as service test...
Oct 08 14:58:56 hecs-x-medium-2-linux-20201005162808 systemd[1]: Started wonrowl proxy install as service test.
Oct 08 15:07:39 hecs-x-medium-2-linux-20201005162808 systemd[1]: Stopping wonrowl proxy install as service test...
Oct 08 15:07:39 hecs-x-medium-2-linux-20201005162808 systemd[1]: Stopped wonrowl proxy install as service test.
 

 

 

此时虽然建立服务成功,但是并没有具备开机自动的功能,通过 systemctl enable wonrowl_proxy  添加开机自启动

[root@hecs-x-medium-2-linux-20201005162808 wonrowl_proxy]# systemctl enable wonrowl_proxy
Created symlink from /etc/systemd/system/default.target.wants/wonrowl_proxy.service to /usr/lib/systemd/system/wonrowl_proxy.service.

 

直接reboot

 

重启后  systemctl status wonrowl_proxy

 

[root@hecs-x-medium-2-linux-20201005162808 wonrowl_proxy]# systemctl status wonrowl_proxy
● wonrowl_proxy.service - wonrowl proxy install as service test
   Loaded: loaded (/usr/lib/systemd/system/wonrowl_proxy.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2020-10-08 15:09:40 CST; 4s ago
  Process: 1650 ExecStop=/root/wonrowl_proxy/stop.sh (code=exited, status=0/SUCCESS)
  Process: 1658 ExecStart=/root/wonrowl_proxy/start.sh (code=exited, status=0/SUCCESS)
 Main PID: 1659 (tcp_proxy)
   CGroup: /system.slice/wonrowl_proxy.service
           └─1659 /root/wonrowl_proxy/tcp_proxy -l 20011 -r 182.61.145.146 -p 20011

Oct 08 15:09:40 hecs-x-medium-2-linux-20201005162808 systemd[1]: Starting wonrowl proxy install as service test...
Oct 08 15:09:40 hecs-x-medium-2-linux-20201005162808 systemd[1]: Started wonrowl proxy install as service test.

 

可以看到已经自己运行,添加开机启动成功

 

收工