2012-03-22 74 views
0

我有一个小脚本来运行搜索守护进程,如: run.sh不等待某个命令结束执行;

cd ~/apache-solr 
xterm -e java -jar start.jar 
sleep 5 
cd ~/anotherFolder 
#make something else 

问题:
- 在xterm -e ...命令脚本等待命令完成后运行另一个命令;

问题:
我们可以在不等待xterm -e ...命令执行结束的情况下运行下一个命令吗?

附:
对不起,我的英语和感谢您的任何帮助。

+1

后台任务 - 通过&在末尾运行命令 – Jayan 2012-03-22 10:57:17

+0

@Jayan您应该将其复制到答案。谢谢。 – ted 2012-03-22 10:59:34

+1

它可以帮助你花费一些时间来了解外壳:网上有材料..像http://writers.fultus.com/garrels/ebooks/Machtelt_Garrels_Bash_Guide_for_Beginners_2nd_Ed.pdf – Jayan 2012-03-22 11:00:10

回答

2

甚至更​​好,你可以使用nohup

像:

nohup xterm -e java -jar start.jar & 

随着你的nohup命令将不会收到killsig即使你闭上你的腻子会话实例。

+0

很酷。谢谢。要将你的答案标记为正确,因为你已经告诉了'nohup':) – ted 2012-03-22 11:06:55

1

是的,你可以把&放在想要在后台运行的行后面;这将允许您的脚本在命令运行时继续;

xterm -e java -jar start.jar & 

一个例子;

date 
sleep 5 
date 

> Thu Mar 22 11:57:17 CET 2012 
> Thu Mar 22 11:57:22 CET 2012 

date 
sleep 5 & 
date 

> Thu Mar 22 11:57:25 CET 2012 
> Thu Mar 22 11:57:25 CET 2012 
1

是把&在命令结束时,将开始执行

1

一个符号的新线程在命令月底将开始在后台的命令,并让脚本继续下一行。

xterm -e java -jar start.jar & 
1

如何

xterm -e java -jar start.jar & 

注结束&告诉给在后台运行过程中的壳。

如果在脚本中需要结果,该命令何时完成,这是另一个问题。