本人有一个自己写的代理用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.
可以看到已经自己运行,添加开机启动成功
收工