关于 nohup 执行命令以后 需要再按回车才能起效的解决办法
最近在做分析程序优化过程中,需要增加分析程序日志,但是在hadoop上运行时,是需要使用hadoop自身的log4j来进行日志输出,若想要将自定义的log4j日志内容输出独立的日志文件,需要修改hadoop自身log4j配置文件,并需要重启hadoop集群,这、、有点摊上大事的赶脚,所以还是需要其他方法来实现,后来想到后台运行可以导出日志到指定位置,但是每次会将原文件覆盖,对于查看分析任务是否正常运行也足够了。
开始想直接在sh中使用nohup运行
nohup hadoop jar analysis_v4_test_args.jar -1 8 8 >/dev/null 1>logs&
但是试过以后发现在nohup以后 需要再次按回车才能生效,这对于cron配置的定时任务来说……费点劲,后来就想在sh中增加回车换行操作,中间也经历了不少弯路,网上的东西好多问题的说,最后经修改,完成功能。以后终于可以查看分析日志了……代码如下
1 #!/bin/bash 2 str=$"\n" 3 nohup hadoop jar analysis_v4_test_args.jar -1 8 8 >/dev/null 1>logs& 4 sstr=$(echo -e $str) 5 echo $sstr 6 tail -20 logs