我在脚本anmed test.csh中编写了以下代码,以在Solaris Unix中的前台启动基于GUI的应用程序。当我运行脚本并希望使用键盘Ctrl + C终止GUI进程时,进程不会终止。如果我直接从终端打开GUI应用程序,我可以使用Ctrl + C终止进程。有人可以帮助我理解为什么我无法杀死从脚本调用的进程吗?
#! /usr/bin/csh
# some script to set env variables
# GUI Process
cast
然后我使用以下命令执行脚本。我无法使用Ctrl + C命令终止vcast进程。
source test.csh
答案 0 :(得分:0)
如果它被启动到自己的线程中,那么挂起请求可能无法到达应用程序。您可以添加信号处理程序以级联挂断请求或查看进程表以查看应用程序的进程ID,然后将其终止。这也可以很容易编写脚本。
答案 1 :(得分:0)
您最好直接执行脚本,而不是采购脚本。
1)首先在脚本的开头添加#!/bin/csh
,
2)将其设置为可执行文件:
$ chmod u+x test.csh
3)直接执行:
$ ./test.csh
你应该能够杀死它。无论如何,请考虑问题可能与您在脚本中运行的某些可执行代码有关。考虑尝试通过在终端中逐行复制粘贴来调试脚本,直到达到滞后点为止。
另一个可能令人讨厌的问题可能是无限while
循环。检查这种错误。也许你有 while 循环永远不会得到突破点。
此致