
fork 出子进程,在子进程里用 exec 执行A,在父进程里做B要做的事情,比如下面的代码例子里,父进程在一个循环体内等待需要执行的 *** 作, 通过 scanf 来接收用户命令,用户输入 0,则启动 A, 输入 1 则杀掉 A。
#include <stdioh>#include <signalh>
#include <unistdh>
int main()
{
int pid = -1;
int op;
while(1) {
printf("Input op code\n");
scanf("%d", &op);
switch (op)
{
case 0:
/ fork child /
while((pid = fork()) < 0) {}
if (pid == 0)
{
/ child /
execlp("/path/to/A", "/path/to/A", , NULL);
exit(1);
}
break;
case 1:
/ kill child /
if (pid < 0) {
printf("Start A first!\n");
break;
}
kill(pid, SIGKILL);
pid = -1;
break;
default:
printf("Unknown op %d\n", op);
break;
}
}
return 0;
1、利用crontab 制定定时任务
3、crontab的用法
第1列分钟1~59
第2列小时1~23(0表示子夜)
第3列日1~31
第4列月1~12
第5列星期0~6(0表示星期天)
第6列要运行的命令
下面是crontab的格式:
分 时 日 月 星期 要运行的命令或脚本
30 21 /usr/local/apache/bin/apachectl restart
上面的例子表示每晚的21:30重启apache
1、首先打开linux虚拟机,运行虚拟机,在虚拟机中打开明令行。
2、其次使用killall通过程序的名字,来杀死进程。
3、最后输入命令就可以在原来的tty上杀死sleep了。
端口号如下:
1 查找占用的程序。
端口号:netstat -apn | grep 4040
最后一项显示的是pid和对应的名称。
2 杀掉对应的进程,彻底杀死进程。
端口号:kill -9 26105
对计算机软件的维护主要有以下几点:
(1)对所有的系统软件要做备份。当遇到异常情况或某种偶然原因,可能会破坏系统软件,此时就需要重新安装软件系统,如果没有备份的系统软件,将使计算机难以恢复工作。
(2)对重要的应用程序和数据也应该做备份。
(3)经常注意清理磁盘上无用的文件,以有效地利用磁盘空间。
(4)避免进行非法的软件复制。
(5)经常检测,防止计算机传染上病毒。
(6)为保证计算机正常工作,在必要时利用软件工具对系统区进行保护。
总之,计算机的使用是与维护分不开的,既要注意硬件的维护,又要注意软件的维护。
Linux kill 命令用于删除执行中的程序或工作。
kill 可将指定的信息送至程序。预设的信息为 SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用 SIGKILL(9) 信息尝试强制删除程序。程序或工作的编号可利用 ps 指令或 jobs 指令查看。kill %1这条命令表示杀死一个后台程序,这个后台程序的“工作号码(jobnumber)”是1号。命令查询看下图:
杀死进程,就像是windows中的结束进程一样。停止进程和结束进程都有休眠的意思。
比如你安装一个dock,没有使用时,这个dock的进程是睡眠状态,或者停止状态。
如果需要把它就是结束进程,如果杀死它的进程。就会完全不运行,再次启动时会比关掉它再次启动慢点。
这是小程序看的不是很明显。如果是ubuntu软件中心,openoffice之类的会稍微明显一点。
个人体会,不知道对不对
HOHO相当有难度的问题。
首先,我想知道的是如何叫意外杀死,一切没有执行完的都算是意外杀死么?我看用shell解决是比较合适的。大致流程如下:
首先我希望你有1234的源代码,因为我不知道你所谓的意外杀死是什么情况下意外杀死,比如通过kill来发送信号杀死他。请注意,如果你程序执行出现异常也是通过信号来杀死,不过是内核发送的,而不是你自己来发送的。所以我希望你修改1234的源代码,在他正常结束的情况下,你最好有个输出标志标识他正常结束。比如你的程序是C写的,那么希望你在正常结束后调用一个printf("success end");这个应该不难。
紧接着,你写一个shell脚本,这个脚本应该是这样
绝对路径/1234 > 绝对路径/mytxt,以后想启动这个进程就用这个脚本来启动。
在希望你写一个脚本,这个脚本执行ps -le首先查看进程里面是否还存在1234这个进程,如果有就什么都不做退出,如果没有了,那你就检查mytxt文件看是否是正常结束了,如果正常结束就从cron守护进程的配置文件移除我这个检测脚本。如果没有找到 success end的话,那么就再次启动。
最后将这个脚本加到cron守护进程的配置文件中,定时启动它检测。
有点麻烦,不过这是我能想到的办法了,也许其它人有更好的办法。
列出后台进程命令:jobs
后接&:将程序放到后台执行,如,bash testsh&
fg <num> :将后台进程调到前台,如,fg 1
ctrl+z 可挂起进程,注:jobs显示的状态是stopped
bg <num> 可将进程在后台执行,比如执行ctrl+z挂起进程后,再用命令bg 1让进程在后台继续执行
语法:crontab [-u user] [-l | -r | -e]
ping的作用:连通性检查以及网速检查
ping -c 测试数据包数量 目的主机地址
如:ping -c 5 >
以上就是关于linux下现在有A和B两个程序,B程序要一直运行,在B程序里可以杀死和开启A程序,全部的内容,包括:linux下现在有A和B两个程序,B程序要一直运行,在B程序里可以杀死和开启A程序,、linux 脚本编程 定时关闭和打开程序、linux在原来的tty上杀死sleep怎么 *** 作等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)