如何停止在不同系统的shell中运行的进程
How to stop a process running in a shell in a different system?
好,所以我正在执行SBC6845中存在的程序./led.sh,从我的主机系统使用qt- c++程序。这个程序基本上把我的SBC连接到我的主机系统。它相当于"超级终端"(hyperterminal)或"迷你终端"(Minicom)。我得到了这个程序(示例代码)从http://code.google.com/p/qextserialport/.
下载"qextserialport-1.2rc.zip"我遇到了这个链接:在ubuntu的QT c++中运行shell命令,同时搜索如何从QT程序中执行shell命令。我尝试并成功执行./lead .sh。感谢链接。
我宣布
void someaction(); // in the dialog.h
然后在dialog.cpp中添加这个
connect(ui->pushButton, SIGNAL(clicked()), SLOT(someaction()));
和
void Dialog::someaction()
{
QString command = "sh ./led.shrn"; const char* command2;
command2 = command.toLocal8Bit().data();
port->write(command2);
我能够在我的SBC中做led闪光。
但是当我试图停止./lead .sh时,问题发生了,我无法在artassistant中这样做(bug,需要修改,仍然工作)。但目前我正试图使另一个pushbutton_1,并把一些像"Ctrl+Z"里面,并要求./lead .sh停止。我遇到了一些其他的链接,我无法把由于低声誉点。我不知道如何使用SIGTERM/kill选项[从其他链接]内qt应用程序和执行按钮点击。假设我使用kill,我将如何确定多个这样的按钮动作的pidof,并分配杀死谁。
我还想补充一点,我的SBC有ash [Almquist shell]。所以它是Bourne shell的低内存克隆,我不知道它是否支持正常的命令来退出led.sh。
我不知道如何使用SIGTERM/kill选项[从其他链接]在qt应用程序和执行按钮点击。
与这么多,Qt给你一个直观的抽象,让你不必担心任何这些,即QProcess。在您的情况下,您需要这样做:
QProcess proc;
proc.start("led.sh");
...
//handle Ctrl-Z event
proc.close();
这里的第一个答案有其他几种执行更复杂shell命令的技术。
我已经找到了一个临时的解决方案。我还没有尝试qprocess操作。
在dialog.h中我增加了一个功能:
void someotheraction();
然后在dialog.cpp中我这样做:
connect(ui->pushButton_2,SIGNAL(clicked()), SLOT(someotheraction()));
:
void Dialog::someotheraction()
{
QString command = "x001a rn"; const char* command2; // Ctrl-Z = x001a
command2 = command.toLocal8Bit().data();
port->write(command2);}
这里的第五个回复给了我这个想法。我不知道为什么,但它确实起作用了,也许有人能解释得更好。
- 如何通过cpp程序运行shell脚本
- 如何在有限的分叉数量下运行类似shell的管道任务
- 通过C++应用程序运行 shell 脚本始于 JAVA
- 使用管道通过 TTY、PTY 或 execv() 运行 shell(例如 sh)有什么区别?
- 在结束运行之前获取 c++ 中的 shell 命令输出
- 如何在 Linux 中同时运行多个 shell 命令
- 分叉:使用一个参数运行 shell 时资源暂时不可用
- 为什么在Shell输出中运行的可执行操作到stdout,而不是崩溃时的stderr
- 在 pthread 中运行 shell 命令的良好和优化方法是什么?
- C++:在Linux shell脚本中运行GDB
- 运行 shell 脚本时出错:"pipe call failed"
- 从c++程序运行shell脚本会自动将shell脚本的输出显示到控制台吗
- 从shell脚本运行c scrips
- 如何在C++中正确运行 shell 脚本
- 在 Jenkins 中运行 "exec" 命令 "Execute Shell"
- 命令使用 shell 运行,但卡在 QProcess 中
- 程序(nload)在shell中执行时作为守护进程运行,但不在启动/自动化脚本中执行
- 从CPP运行Shell脚本,而脚本绑定在exe中
- 我该如何编写一个通过从shell运行来编译自己的c++程序
- 如何在命令之后保持shell运行