如何在ansible剧本任务中运行nohup命令?

时间:2018-11-16 20:49:38

标签: ansible nohup

我几乎是新手。我正在尝试使用nohup命令迁移linux脚本以执行远程服务器启动,但是它无法正常工作。 ansible结果状态更改为:true,但是当我检查进程是否启动时,它没有启动。因此,我必须手动重新启动它。

感谢您的帮助。


这是我在做什么:

- name: "Performing remote startup on server {{ SERVER }}"
  command: nohup {{ JAVA_HOME }}/bin/java {{ DYNATRACE_AGENT_REUS }} -jar -Dengine={{ ENGINE_NAME }} name-{{ ENGINE_JAR_VERSION }}.jar --server.port={{ ENGINE_PORT }} >{{ CONSOLE_LOG }} 2>&1 &
  args:
    chdir: "{{ SOMEVAR_HOME }}"
    async: 75
    poll: 0
    register: out
  - debug: 
      msg: '{{ out }}'

结果:

TASK [Performing remote startup on server] ***********************************************************************************************************************************************************************************
changed: [servername]

TASK [debug] ********************************************************************************************************************************************************************************************************************************
ok: [servername] => {
    "msg": {
        "ansible_job_id": "160551828781.28405",
        "changed": true,
        "failed": false,
        "finished": 0,
        "results_file": "/home/admindirectory/.ansible_async/160551828781.28405",
        "started": 1
    }
}

1 个答案:

答案 0 :(得分:1)

尝试使用shell而不是command模块。 Bash重定向不适用于command

P.S。您以一种奇怪的方式使用ansible。创建一个系统单元(系统级或用户级),然后使用systemd模块来启用/启动它。