从另一个脚本运行bash脚本,并在第二个脚本运行时退出第一个脚本

时间:2014-12-23 19:30:10

标签: linux bash

第一个bash脚本是:

./second #takes too long

我想杀第一个bash脚本,而第二个bash脚本仍在运行。

我能这样做吗?

更新

第一个脚本由cronjob运行!

2 个答案:

答案 0 :(得分:9)

如果第一个脚本的最后一件事是调用第二个脚本,那么执行以下操作:

exec ./second

用第二个替换第一个脚本的进程。

,否则

nohup ./second &
disown

答案 1 :(得分:1)

对于Linux,你会使用" kill"获取要退出的程序的PID后命令 -

http://linux.about.com/library/cmd/blcmdl_kill.htm

我不知道如何通过脚本自动获取PID。

看来你也可以使用" pkill"按名称终止进程 -

实施例 -

pkill -9 ping

或者killall -

killall firefox

https://www.digitalocean.com/community/tutorials/how-to-use-ps-kill-and-nice-to-manage-processes-in-linux

以下答案适用于BATCH文件,而不是bash。我读错了这个问题。

您可以通过获取PID来关闭实例。您也可以使用这段代码 -

taskkill /f /im "x"

其中" x"是您要关闭的程序的名称,它将显示在任务管理器中。

我给出的参数说明 -

/ im ImageName:指定要终止的进程的映像名称。使用通配符(*)指定所有图像名称。

/ f:指定强制终止进程。远程进程忽略此参数;所有远程进程都被强制终止。

更多信息 - http://technet.microsoft.com/en-us/library/bb491009.aspx