iblessyou
V2EX  ›  Terminal

求教个常见的 shell 问题

By iblessyou at 2024 年 5 月 30 日 · 1948 次点击

如下 shell , elasticsearch -d 放到 main 方法里直接执行就可以,在 start 里会卡在那,程序也不自动退出,如果还是想用类似结构,怎么避免呢。

function start (){
  elasticsearch -d 
}

function main(){
  start
}
main
第 1 条附言  ·  2024 年 5 月 30 日
我的锅,刚发现放 main 里也不行,必须不用方法包着才正常。
5 条回复  •  2024-05-30 15:20:24 +08:00
gzldc
   1
gzldc  
   2024 年 5 月 30 日
elasticsearch -d 后面加上空格 + & ,作用是把命令放到后台运行
gzldc
   2
gzldc  
   2024 年 5 月 30 日
或者也可以试试 nohup 最好指定一下输入 log 目录 不然默认都打印在当前目录的 nohup.out 了
rrfeng
   3
rrfeng  
   2024 年 5 月 30 日
直接 -d 程序会退出吗?
iblessyou
   4
iblessyou  
OP
   2024 年 5 月 30 日
@rrfeng 直接执行或者放 shell 里直接执行都正常


@ssgooglg ai 回答也是加&,试了下不行。
rrfeng
   5
rrfeng  
   2024 年 5 月 30 日
这个代码没问题,肯定其他地方有
© 2026 V2EX · 36ms · 3.9.8.5