如何用python自建kms服务器

如何用python自建kms服务器,第1张

1安装依赖

yum install python-argparse

2下载代码

git clone

3运行激活服务器

cd py-kms  
python serverpy

这时候看到提示消息

TCP server listening at 0000 on port 1688

就是说KMS服务已经在1688端口上打开了,没有错误。这就搭建完毕了。
4长期运行配置
对于需要长期运行的KMS服务器,可以使用supervisor管理py-kms服务(非必须步骤)
拷贝py-kms文件夹到/usr/local/目录下

cp -r py-kms /usr/local/

安装supervisor

yum install python-setuptools  
easy_install supervisor

生成默认配置文件(supervisordconf)


echo_supervisord_conf > /etc/supervisordconf

编写supervisor脚本,加到/etc/supervisordconf最后


[program:pykms]  
command=python /usr/local/py-kms/serverpy  
autorestart=true  
user=root

以daemon方式运行,执行

supervisord


5客户端测试
客户端下载py-kms后,cd跳转到该目录,执行

python clientpy -v 

结果如下说明安装成功

Connecting to on port 1688  
Connection successful!  
Sending RPC bind request  
RPC bind acknowledged

一、nohup

nohup,即 no hangup,nohup 的用途就是让提交的命令忽略 hangup 信号,从而使我们的进程避免中途被中断。它可以让 python 脚本和服务器连接端的 session 分离,以达到退出后依旧执行:

$ chmod +x /your_path/yourscriptpy   # 先设置可执行权限$ nohup python /your_path/yourscriptpy# 切记退出的 Terminal 的时候,不要 ctrl+c 退出,而是直接关闭,不然 Nohup 就被你关闭了。

如何关闭这个一直执行的进程呢:

# 找到对应的进程 PID
$ ps -ef | grep python
# 返回内容如:
user      2430     1  0 Jul03        00:00:01 /usr/bin/python -tt /usr/sbin/yum-updatesd
# kill 掉该进程即可:
$ kill -9 2430

PS:nohup 在服务器重启之后就失效了,所以并不完美。

二、将命令写入 Linux 启动脚本

Linux 在启动的时候会执行 /etc/rclocal 里面的脚本,所以只要在这里添加执行命令就可以:

$ vim /etc/rclocal
# 如果是 Centos 添加以下内容:
/your_path/python34 /your_path/yourscriptpy
# 以上内容需要添加在 exit 命令前,而且由于在执行 rclocal 脚本时,PATH 环境变量未全部初始化,因此命令需要使用绝对路径。

PS:这种方式的缺点是如果脚本挂了,那么不会自动重新启动。

三、使用 Supervisor 进程管理工具

详见这篇文章:使用 Supervisor 管理服务器后台进程,在服务器重启和脚本出错后,可以完美重启,推荐。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13463017.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-12
下一篇 2023-08-12

发表评论

登录后才能评论

评论列表(0条)

保存