linux下现在有A和B两个程序,B程序要一直运行,在B程序里可以杀死和开启A程序,

linux下现在有A和B两个程序,B程序要一直运行,在B程序里可以杀死和开启A程序,,第1张

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 制定定时任务

2、编写定时关闭和打开程序脚本或命令

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怎么 *** 作等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10143315.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存