需要通过java远程登录linux系统执行shell命令,执行的shell命令是
/home/telegraf/usr/bin/telegraf --config /home/telegraf/etc/telegraf/telegraf.conf &
这条命令在linux下执行完全没问题,但通过代码来调用就是不成功,通过排查发现是命令后台执行的问题。使用以下两种方式都可以解决
shell后台执行命令常见的方式有两种,分别为&和nohup
1、&
命令格式:commod &
这种情况会将输出直接打印出来,若需要重定向输出内容到指定文件,可以使用以下命令
command >xxx.log 2>&1 &
2、nohup
命令格式 nohup command &
若需要定向输出内容到指定文件,可以使用以下命令
nohup comman > xxx.log 2>&1