创建一个执行命令的API地址,并PM2守护运行

创建一个执行命令的API地址,并PM2守护运行

时间煮雨-Master
2024-10-13 / 1 评论 / 0 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2024年12月29日,已超过499天没有更新,若内容或图片失效,请留言反馈。
  1. 安装 Node.js 和 npm

    sudo apt-get install -y nodejs
    sudo apt install npm
  2. 验证安装
    安装完成后,你可以验证 Node.js 和 npm 是否安装成功:

    node -v
    npm -v
  3. 安装 PM2和python3
    现在你可以使用 npm 来安装 PM2:

    npm install -g pm2
    sudo apt install python3-flask
  4. 验证 PM2 安装
    安装完成后,你可以验证 PM2 是否安装成功:

    pm2 -v
  5. 创建Python 脚本
    创建一个名字叫start_app.py的脚本,路径为:/DATA/AppData/API

    from flask import Flask, request, jsonify
    import subprocess
    import threading
    import os
    
    app = Flask(__name__)
    
    def run_command(command):
     """运行命令并返回结果"""
     try:
         result = subprocess.run(
             command,
             shell=True,
             stdout=subprocess.PIPE,
             stderr=subprocess.PIPE,
             text=True,
             check=False
         )
         
         return {
             "stdout": result.stdout,
             "stderr": result.stderr,
             "returncode": result.returncode,
             "status": "completed"
         }
     except Exception as e:
         print(f"Error executing command: {str(e)}")
         return {
             "stdout": "",
             "stderr": str(e),
             "returncode": 1,
             "status": "error"
         }
    
    @app.route('/execute', methods=['POST'])
    def execute_command():
     data = request.json
     command = data.get('command')
     
     if not command:
         return jsonify({"error": "No command provided"}), 400
     
     try:
         result = run_command(command)
         
         return jsonify(result)
             
     except Exception as e:
         return jsonify({
             "stdout": "",
             "stderr": str(e),
             "returncode": 1,
             "status": "error"
         })
    
    if __name__ == '__main__':
     app.run(host='0.0.0.0', port=6329, threaded=True)
  6. 使用 PM2 启动 Python 脚本
    6.1 你可以使用 PM2 来启动这个启动脚本:

    cd /DATA/AppData/API
    pm2 start start_app.py --name "my_api"

    这里的 "my_api" 参数用于为你的进程指定一个名称,方便后续管理。
    6.2 查看和管理进程
    你可以使用以下命令来查看和管理你的 Python 进程:

    pm2 list

    6.3 查看某个进程的详细信息

    pm2 show my_api

    6.4 重启进程

    pm2 restart my_api

    6.5 停止进程:

    pm2 stop my_api

    6.6 删除进程:

    pm2 delete my_api
  7. 配置 PM2 自动启动
    7.1 你可以配置 PM2 在系统启动时自动启动你的 Python 脚本:

    pm2 startup

    7.2 PM2 会输出一个命令,你需要运行这个命令来设置自动启动。例如:

    sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u your_username --hp /home/your_username

    your_username替换成你的用户名,比如root就是

    sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u root --hp /home/root

    7.3 然后保存当前的 PM2 进程列表:

    pm2 save

    7.4 如果将来您想要移除这个启动脚本,可以使用:

    pm2 unstartup systemd
  8. 填写地址
    http://ip:6329/execute
0

评论 (1)

取消
  1. 头像

    [...]pip3 install requests详细教程请参考:青龙常用的JD脚本拉库命令和常用依赖 - 时间煮雨三、部署机器人框架1. 安装 AutManAutMan 是一款功能强大的机器人框架,支持多种平台对接。以下是安装步骤:运行 AutMan 容器:访问 AutMan 后台:安装完成后,通过浏览器访问 http://你的IP:8080 即可进入 AutMan 后台。详细教程请参考:AutMan [...]

    回复
0:00