博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ansible shell 之运行后台程序
阅读量:2356 次
发布时间:2019-05-10

本文共 634 字,大约阅读时间需要 2 分钟。

最近在使用ansible shell模块启动一个shell编写的脚本,该脚本主要功能式加载java的classpath并在后台运行这个java程序。

该脚本在linux shell中可以正常启动和停止,但是使用ansible shell模块却每次都启动后进程都消失了,日志没有任何异常,pid文件也生成了。
后来经过一个同事的猜想,是否有程序将该进程kill掉了。

于是产生了以下几种猜想:

1.ansible shell模块执行完shell脚本,就立即关闭当前的shell,进程也就被关闭了。
ansible fork出来子线程来运行脚本,ansible正常退出时会结束所有fork的子线程因为程序启动后被关闭.

尝试解决: 给shell命令开头加个nohup, 结尾加个&, 如果环境变量找不到,加入source ~/.bash_profile

例如:source ~/.bash_profile;nohup /apps/xxx/ss/start.sh &

参考:

Linux set命令参数及用法详解 ()
shell执行startup.sh无法启动tmocat的问题 ()
ansible启动tomcat失败 ()
ansible在远程机器将程序起在后台 ()
Ansible常用模块:cron、synchronize、shell、service ()
关于ansible远程执行的环境变量问题(login shell & nonlogin shelll)()

转载地址:http://mdktb.baihongyu.com/

你可能感兴趣的文章
自定义UI实例
查看>>
推荐一个不错的自定义UI
查看>>
fedora16 设置 gedit软件的默认编码
查看>>
S3C6410 存储器映射
查看>>
Linux 3.3.0移植到S3C6410开发板上之一
查看>>
Busybox支持中文的解决办法
查看>>
Spring中BeanFactory和FactoryBean有什么区别?
查看>>
牛年(2021)的KPI
查看>>
快速识别图片类型
查看>>
理解云原生
查看>>
docker常见问题答疑
查看>>
mac最简配置maven
查看>>
虚拟机性能监控与故障处理工具
查看>>
GIT的一些操作
查看>>
ZooKeeper 四字命令
查看>>
Mysql InnoDB锁问题
查看>>
ZooKeeper编程 基础教程
查看>>
Java 集合框架
查看>>
kafka 操作
查看>>
Java 集合框架 算法
查看>>