@w460461339
2020-04-16T18:41:05.000000Z
字数 2665
阅读 1500
微众银行
1)将自己的22接口暴露在公网上,其他主机可以通过ssh服务访问该主机。
2)该服务能够开机自启动
目前发现,并不是所有机器都能有rc.local文件(linux自己的开机启动文件(起码我没找到)),所以使用如下方法:
1)安装supervisor。
2)利用supervisor管理进程。
3)supervisor开机自启动,因此其管理的进程也开机自启动。
安装
sudo apt-get install supervisor
修改配置文件: /etc/supervisor/supervisord.conf
; supervisor config file
[unix_http_server]
file=/var/run/supervisor.sock ; (the path to the socket file)
chmod=0700 ; sockef file mode (default 0700)
[supervisord]
logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
childlogdir=/var/log/supervisor ; ('AUTO' child log dir, default $TEMP)
; the below section must remain in the config file for RPC
; (supervisorctl/web interface) to work, additional interfaces may be
; added by defining them in separate rpcinterface: sections
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL for a unix socket
; The [include] section can just contain the "files" setting. This
; setting can list multiple files (separated by whitespace or
; newlines). It can also contain wildcards. The filenames are
; interpreted as relative to this file. Included files *cannot*
; include files themselves.
[include] # 在这个下面指定自己的配置文件的地址
#files = /etc/supervisor/conf.d/*.conf
files = /home/nano/04_supervisor_conf/*.conf
【基础安装】https://www.cpolar.com/
按照上面的链接进行安装cpolar并测试完成之后,再按照下面的链接配置yml。
【群辉开机自启动】https://www.cpolar.com/blog/how-to-make-cpolar-boot-from-the-synology-nas
如果上面的服务能够满足要求,那么不用管下面的了,如果不行,再往下看。
直接利用supervisor来启动cpolar服务貌似是行不通的【我当时尝试是这样的,可以自行实验】,因此这里通过:
0、supervisor管理python脚本
1、python脚本调用sh脚本
2、sh脚本调用cpolar服务
3、cpolar服务通过nohup+yml文件来实现。
的方法来实现。
【yml文件】
/home/【username】/.cpolar/cpolar.yml
authtoken: 【你自己的token】
tunnels:
ssh_tunnel:
proto: tcp
addr: "22"
【nohup指令】
nohup /home/nano/03_remote_control/cpolar start-all -config=/home/nano/.cpolar/cpolar.yml -log=stdout &
验证方式
ps -aux|grep cpolar # 发现cpolar进程存在
其他机器通过ssh可以远程访问宿主机。
【sh脚本】
#! /bin/bash
nohup /home/nano/03_remote_control/cpolar start-all -config=/home/nano/.cpolar/cpolar.yml -log=stdout &
【记得先把之前nohup开启的服务关了】
验证方式
ps -aux|grep cpolar # 发现cpolar进程存在
其他机器通过ssh可以远程访问宿主机。
【python脚本】
# -*- coding=utf-8
import os
import time
os.system('sh ./start.sh')
while True:
#os.system('sh ./start.sh ')
res = os.popen('ps -aux|grep cpolar').read()
print(res)
res_list = res.split('\n')
temp_flag = False
for temp_res in res_list:
if 'tcp' in temp_res:
temp_flag = True
break
if temp_flag:
break
[program:everyday_cpolar]
command=sudo python3 -u remote.py
directory=/home/nano/03_remote_control/
user=nano
autorestart=true
autostart=true