Shell脚本执行在远程服务器Ansible中无效(先前的任务已成功执行)


听风~
2025-03-07 12:36:31 (17天前)
  1. 我无法在Ansible中远程执行shell脚本。但是,在远程服务器中成功执行的相同角色(filebeat)中存在先前的任务。我正在运行以下...

3 条回复
  1. 0# 至此 | 2019-08-31 10-32



    你必须使用


    disown


    内置命令通知shell在断开连接时不应该杀死后台进程;你也可以用


    nohup


    为了同样的效果



    话虽如此,你是

    当然
    </强>
    解决错误的问题,因为如果^ H ^ Hwhen filebeat崩溃,则没有任何监视该服务以使其保持活动状态。您将要使用systemd(或其在您的系统上的等价物)来确保文件保持运行,并且通过使用为这些东西设计的机制,您可以支持所有“disown or nohup”业务,这会导致您询问S.O.的问题。


  2. 1# trpnest | 2019-08-31 10-32



    你应该用

    nohup

    在后台运行它。




    因为当ansible退出时,所有与会话相关联的进程
    将被终止。为避免这种情况,你应该使用

    nohup





    正确的命令是:



    1.   - name: "Start Filebeat"
    2. shell: “{{ filebeat_install_dir }}/bin/startup.sh

      command: nohup sh {{ filebeat_install_dir }}/bin/startup.sh &>> startup.log &”
      become: yes
      become_user: “{{ filebeat_install_as }}”

    3. </code>

登录 后才能参与评论