第一个bash脚本是:
./second #takes too long
我想杀第一个bash脚本,而第二个bash脚本仍在运行。
我能这样做吗?
更新
第一个脚本由cronjob运行!
答案 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
以下答案适用于BATCH文件,而不是bash。我读错了这个问题。
您可以通过获取PID来关闭实例。您也可以使用这段代码 -
taskkill /f /im "x"
其中" x"是您要关闭的程序的名称,它将显示在任务管理器中。
我给出的参数说明 -
/ im ImageName:指定要终止的进程的映像名称。使用通配符(*)指定所有图像名称。
/ f:指定强制终止进程。远程进程忽略此参数;所有远程进程都被强制终止。
更多信息 - http://technet.microsoft.com/en-us/library/bb491009.aspx