linux拉起进程命令 linuxkill进程

Linux启动一个进程的过程Linux 中的每个进程都存在于“进程树”中 。你可以通过运行 pstree 命令查看进程树 。树的根是 init,进程号是 1 。每个进程(init 除外)都有一个父进程,一个进程都可以有很多子进程 。
所以 , 假设我要启动一个名为 ls 的进程来列出一个目录 。我是不是只要发起一个进程 ls 就好了呢?不是的 。
我要做的是,创建一个子进程 , 这个子进程是我(me)本身的一个克隆,然后这个子进程的“脑子”被吃掉了,变成 ls 。
开始是这样的:
然后运行 fork(),生成一个子进程,是我(me)自己的一份克?。?
然后我让该子进程运行 exec("ls"),变成这样:
当 ls 命令结束后,我几乎又变回了我自己:
在这时 ls 其实是一个僵尸进程 。这意味着它已经死了,但它还在等我,以防我需要检查它的返回值(使用 wait 系统调用) 。一旦我获得了它的返回值,我将再次恢复独自一人的状态 。
上文提到的“脑子被吃掉”是什么意思呢?
进程有很多属性:
当你运行 execve 并让另一个程序吃掉你的脑子的时候,实际上几乎所有东西都是相同的! 你们有相同的环境变量、信号处理程序和打开的文件等等 。
唯一改变的是,内存、寄存器以及正在运行的程序 , 这可是件大事 。
为何 fork 并非那么耗费资源(写入时复制)
你可能会问:“如果我有一个使用了 2GB 内存的进程 , 这是否意味着每次我启动一个子进程,所有 2 GB 的内存都要被复制一次?这听起来要耗费很多资源!”
事实上,Linux 为 fork() 调用实现了写时复制copy on write,对于新进程的 2GB 内存来说,就像是“看看旧的进程就好了,是一样的!” 。然后,当如果任一进程试图写入内存,此时系统才真正地复制一个内存的副本给该进程 。如果两个进程的内存是相同的,就不需要复制了
当子进程终结时 , 它会通知父进程,并清空自己所占据的内存,并在内核里留下自己的退出信息(exit code,如果顺利运行,为0;如果有错误或异常状况,为0的整数) 。在这个信息里,会解释该进程为什么退出 。父进程在得知子进程终结时 , 有责任对该子进程使用wait系统调用 。这个wait函数能从内核中取出子进程的退出信息 , 并清空该信息在内核中所占据的空间 。但是,如果父进程早于子进程终结 , 子进程就会成为一个孤儿(orphand)进程 。孤儿进程会被过继给init进程,init进程也就成了该进程的父进程 。init进程负责该子进程终结时调用wait函数 。
当然,一个糟糕的程序也完全可能造成子进程的退出信息滞留在内核中的状况(父进程不对子进程调用wait函数),这样的情况下,子进程成为僵尸(zombie)进程 。当大量僵尸进程积累时,内存空间会被挤占 。
Linux Shell自动拉起进程新建文件夹/root/test/linux拉起进程命令,test文件夹中有myCPP.cpplinux拉起进程命令,myTEXT.txtlinux拉起进程命令,restart.sh
该文件的功能是每隔5s往myTEXT.txt中写入当前时间
编译得到可执行文件mycpplinux拉起进程命令: gmyCPP.cpp -std=c11 -o mycpp
注意有时候因为权限问题会导致shell拉起失败linux拉起进程命令,这里粗暴地开放所有权限 chmod 777 mycpp
shell脚本,检测目标程序是否处于运行状态,如果不运行则将其拉起 。
加上crontab就可以让脚本定时执行,一旦发现进程没有运行,则启动该进程 , 这样就实现了进程的自动拉起 。
通过 crontab -e 进入类似vim的操作界面,在文件末尾补充 */1 * * * * /root/test/restart.sh /root/test/mycpp,让restart.sh脚本每一分钟运行一次(即每分钟检测一次mycpp是否正在执行)
【linux拉起进程命令 linuxkill进程】 查看mycpp进程是否在执行ps -ef | grep mycpp
查看mycpp执行写入的结果tail -f myTEXT.txt
Linux中如何启动进程?进程调度命令有哪些?Linux技术的发展引起了很多企业和个人的关注 。市场对Linux运维的需求逐渐增加,学习Linux技术的人越来越多 。在Linux运维中,进程是必须学习掌握的技能 。那么Linux中如何启动进程?常用的进程调度命令有哪些?
执行中的程序称作进程 。当程序的可执行文件存储在存储器中并运行时,每个进程将被动态分配系统资源、内存、安全属性和相关状态 。多个进程可以与同一个程序相关联 , 并在同一时间执行 , 而不会相互干扰 。操作系统将有效地管理和跟踪所有正在运行的进程 。
Linux中如何启动进程?启动进程的方法是什么?
手工启动 。用户在输入端发出命令,直接启动进程 。分为前台启动和后台启动 。前台启动:直接在SHELL中输入命令进行启动 。后台启动:启动一个目前并不紧急的进程 。
调度启动 。系统管理员根据系统资源和进程占用资源的情况,事先进行调度安排,指定任务运行的时间和场合,到时候系统会自动完成该任务 。
常用的进程调度命令有哪些?
常用的进程调度命令有:at、batch、crontab 。
以上便是关于“如何启动或终止进程?常用的进程调度命令有哪些?”的相关介绍 。想要成为一名优秀的Linux运维工程师,需要掌握更多的Linux知识 。
linux开机自启动命令用户想要在linux开机的时候自启动相关的程序 。那我们要怎么设置呢?下面由我为大家整理了linux下开机自启动命令的相关知识,希望对大家有所帮助!
linux下开机自启动命令
1.开机启动时自动运行程序
Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init 。init根据配置文件继续引导过程,启动其它进程 。通常情况下,修改放置在 /etc/rc或 /etc/rc.d 或 /etc/rc?.d 目录下的脚本文件,可以使init自动启动其它程序 。
例如:编辑 /etc/rc.d/rc.local 文件,在文件最末加上一行"xinit"或"startx",可以在开机启动后直接进入X-Window 。
扩展:其他情况下linux自启动程序命令
2.登录时自动运行程序
用户登录时,bash首先自动执行系统管理员建立的全局登录script :/etc/profile 。然后bash在用户起始目录下按顺序查找三个特殊文件中的一个:/.bash_profile、/.bash_login、 /.profile,但只执行最先找到的一个 。
因此,只需根据实际需要在上述文件中加入命令就可以实现用户登录时自动运行某些程序(类似于DOS下的Autoexec.bat) 。
3.退出登录时自动运行程序
退出登录时,bash自动执行个人的退出登录脚本/.bash_logout 。例如,在/.bash_logout中加入命令"tar -cvzf c.source.tgz *.c" , 则在每次退出登录时自动执行 "tar" 命令备份 *.c 文件 。
4.定期自动运行程序
linux有一个称为crond的守护程序,主要功能是周期性地检查 /var/spool/cron目录下的一组命令文件的内容,并在设定的时间执行这些文件中的命令 。用户可以通过crontab 命令来建立、修改、删除这些命令文件 。
例如,建立文件crondFile,内容为"00 9 23 Jan * HappyBirthday",运行"crontab cronFile"命令后 , 每当元月23日上午9:00系统自动执行"HappyBirthday"的程序("*"表示不管当天是星期几) 。(/etc/crontab中配置命令即可)也可以
5.定时自动运行程序一次
定时执行命令at 与crond 类似(但它只执行一次):命令在给定的时间执行,但不自动重复 。at命令的一般格式为:at [ -f file ] time,在指定的时间执行file文件中所给出的所有命令 。也可直接从键盘输入命令:
6.创建开机自启动脚本
1) 将你的启动脚本复制到 /etc/init.d目录下
以下假设你的脚本文件名为 test 。
2) 设置脚本文件的权限
$ sudo chmod 755 /etc/init.d/test
3) 执行如下命令将脚本放到启动脚本中去:
$ cd /etc/init.d
$ sudo update-rc.d test defaults 95
注:其中数字95是脚本启动的顺序号 , 按照自己的需要相应修改即可 。在你有多个启动脚本,而它们之间又有先后启动的依赖关系时你就知道这个数字的具体作用了 。该命令的输出信息参考如下:
update-rc.d: warning: /etc/init.d/test missing LSB informationupdate-rc.d: see
卸载启动脚本的方法:
$ cd /etc/init.d
$ sudo update-rc.d -f test remove
命令输出的信息参考如下:
Removing any system startup links for /etc/init.d/test … /etc/rc0.d/K95test /etc/rc1.d/K95test /etc/rc2.d/S95test /etc/rc3.d/S95test /etc/rc4.d/S95test /etc/rc5.d/S95test /etc/rc6.d/K95test
linux拉起进程命令的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linuxkill进程、linux拉起进程命令的信息别忘了在本站进行查找喔 。

    推荐阅读