首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当使用nohup时,ansible shell不会创建nohup.out。

当使用nohup时,ansible shell不会创建nohup.out。
EN

Stack Overflow用户
提问于 2019-04-02 13:49:53
回答 1查看 1.2K关注 0票数 1

我编写了一个简单的任务来回显文本,并将其封装在nohup命令中。通常,当我执行nohup echo test时,nohup.out是在同一个工作目录中创建的。当我从ansible做这件事时,nohup.out完全失踪了

代码语言:javascript
复制
- name: nohup
  tags: nohup
  shell: 'nohup echo test'
  args:
    chdir: /tmp
    executable: /bin/bash
  async: 45
  poll: 0

上面怎么了?为什么nohup.out没有出现?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-03 08:17:33

所以根据nohup的文件

如果标准输入是终端,则从不可读文件重定向。如果标准输出是终端,如果可能的话,将输出附加到'nohup.out‘,'$HOME/nohup.out’否则。

Ansible似乎无法以这种方式工作,因此没有创建nohup.out文件。为了解决这个问题,我用以下方式修改了任务

代码语言:javascript
复制
- name: nohup
  tags: nohup
  shell: 'nohup echo test > nohup.out 2>&1 &'
  args:
    chdir: /tmp
    executable: /bin/bash
  become: yes
  become_user: user
  become_method: su

这里的关键部分是> nohup.out 2>&1 &命令中的shell。关于become技术的最后三行在这里没有那么相关。

最后,nohup.out在我需要它的地方,包含我想要的所有数据。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55476484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档