当前位置: 技术问答>linux和unix
请教:“外套”程序,控制子程序的运行
来源: 互联网 发布时间:2016-07-11
本文导语: 先描述一下问题场景: 在linux下有一个可执行的程序PragA(用C++编写), 通过终端可以让其运行:>>PragA parm1 parm2 现在,需要如下控制PragA的执行: 当PragA启动后,每运行一段时间Tr,需要将其挂起一段时间Ts, 并且...
先描述一下问题场景:
在linux下有一个可执行的程序PragA(用C++编写),
通过终端可以让其运行:>>PragA parm1 parm2
现在,需要如下控制PragA的执行:
当PragA启动后,每运行一段时间Tr,需要将其挂起一段时间Ts,
并且,每次恢复运行时,要PragA从上次停下的“位置”继续运行。
我现在考虑的解决方法是:
自己写一个“外套”程序PragW,来控制PragA的执行。
即,由PragW来启动PragA,并获得PragA的进程号,
根据设置的Tr和Ts,来定时挂起,和恢复PragA的执行。
请教各位,这个方法能够处理上述问题吗?
我应该如何获得PragA的进程号,并挂起和恢复其执行?
目前考虑用C/C++(或shell)编写。
谢谢!!
在linux下有一个可执行的程序PragA(用C++编写),
通过终端可以让其运行:>>PragA parm1 parm2
现在,需要如下控制PragA的执行:
当PragA启动后,每运行一段时间Tr,需要将其挂起一段时间Ts,
并且,每次恢复运行时,要PragA从上次停下的“位置”继续运行。
我现在考虑的解决方法是:
自己写一个“外套”程序PragW,来控制PragA的执行。
即,由PragW来启动PragA,并获得PragA的进程号,
根据设置的Tr和Ts,来定时挂起,和恢复PragA的执行。
请教各位,这个方法能够处理上述问题吗?
我应该如何获得PragA的进程号,并挂起和恢复其执行?
目前考虑用C/C++(或shell)编写。
谢谢!!
|
/* parent.c */
#include
#include
#include
#include
#include
int
main(int argc, char *argv[])
{
pid_t pid;
int rc;
pid = fork();
if (pid > 0) {
/* parent */
for (;;) {
rc = sleep(5);
rc = kill(pid, SIGSTOP);
rc = sleep(5);
rc = kill(pid, SIGCONT);
}
} else if (pid == 0) {
execlp("./child", "./child", "argv[1]", "argv[2]", (char *)0);
} else {
perror("fork");
exit(1);
}
return 0;
}
/* child.c */
#include
int
main(int argc, char *argv[])
{
int i;
for (i = 0; i
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。