linux 判断进程是否存在?shell判断一个文件是否存在
各位老铁们好,相信很多人对linux 判断进程是否存在都不是特别的了解,因此呢,今天就来为大家分享下关于linux 判断进程是否存在以及shell判断一个文件是否存在的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
linux下通过脚本实现自动重启程序
自动重启故障相信大家都遇到过,原因也有很多,跟系统,硬件或者外界因素都有关,但是在Linux中可没有那么简单。这里集中讨论linux实现自动重启程序的方法。下面一起看看!
自动重启脚本
假定需要实现重启的程序名为 test,我们这里通过判断进程数目来判断程序是否正常。
ps-ef| grep"$1"| grep-v"grep"| wc–l是获取$1(本例中为test)的进程数,脚本根据进程数来决定下一步的操作。通过一个死循环,每隔1秒检查一次系统中的指定程序的进程数。
代码如下:
脚本check
#!/bin/sh
#-----------------------------------#函数: CheckProcess#功能:检查一个进程是否存在#参数:$1---要检查的进程名称#返回:如果存在返回0,否则返回1.#---------------------------------------CheckProcess(){#检查输入的参数是否有效 if ["$1"="" ]; then return 1 fi#$PROCESS_NUM获取指定进程名的数目,为1返回0,表示正常,不为1返回1,表示有错误,需要重新启动 PROCESS_NUM=`ps-ef| grep"$1"| grep-v"grep"| wc-l` if [$PROCESS_NUM-eq 1 ]; then return 0 else return 1 fi}
#检查test实例是否已经存在while [ 1 ]; do CheckProcess"test" CheckQQ_RET=$? if [$CheckQQ_RET-eq 1 ]; then#杀死所有test进程,可换任意你需要执行的操作 killall-9 test exec./test& fi sleep 1done
脚本start:
加入limit coredumpsize 102400,设置core file的大小,一旦程序Core Dump,有迹可寻。在该脚本中后台执行check脚本,可以省去很多麻烦,
#!/bin/cshlimit coredumpsize 102400
./check&
补充:电脑总是自动重启怎么办
1、右击“我的电脑”,选择“属性”项。
2、在打开的系统属性窗口中选择“高级系统设置”项进入。
3、在打开的“系统属性”窗口中,切换至“高级”选择卡,然后点击“系统和故障恢复设置”按钮。
4、在打开的窗口中取消勾选“自动重启启动”项并按确认即可。
5、当电脑在使用的过程中产生蓝屏时,我们就可以进入“系统日志”管理器中查看产生系统失败的根源啦。打开“运行”对话框,输入命令“eventvwr.msc”即可查看日志信息,从中定位系统产生失败的原因。
6、当然,我们也可以通过禁用某些开机项来尝试修复系统。打开“运行”对话框,输入命令“msconfig”进入“系统配置实用程序”界面,勾选“常规”选项卡下的“诊断启动”选项。
7、还有一种修复计算机蓝屏或重启故障的方法,就是在电脑启动时按“F8”进入系统故障菜单,从中选择“安全模式”进入或“最后一次正确的配置”项进入系统,将及有可能修复系统。
8、当然,如果以上方法均不能解决问题,那么建议您还是重新安装一下系统,毕竟安装系统所耗费的时间相对修复所用时间要少许多。一劳永逸之事才是王道。
相关阅读:电脑自动重启方法
方法一:
1、打开控制面板-管理工具-计划任务程序
2、创建基本任务,名称栏目,输入“定时重启”,下一步;
3、在窗口里,有每天、每周、每月、一次各种选择,这里小诚选择一次,这次执行完就失效,您可以根据自己的情况进行选择哈,点击下一步;
4、设置重启的日期、时间点,下一步;
5、选择启动程序,下一步;
6、在打开页面里,点击浏览,找到C;\Windows\System32\Shutdown.exe,点击打开;
7、在添加参数栏目里输入“-r”(重启),进行下一步
8、点击完成,即可实现自动重启了
方法二:
linux 查看nginx如何启动
通过进程判断
第一种方法:查看进程列表并过滤
Linux每个应用运行都会产生一个进程,那么我们就可以通过查看Nginx进程是否存在来判断它是否启动。
用ps-ef列出进程列表,然后通过grep过滤。
如:ps-ef| grep nginx就可以看到Nginx进程是否存在了。
第二种方法:直接查看进程id
ps-C nginx-o pid
这种直接返回pid的方式比较适合跟其他程序结合使用,比如在shell/python脚本中执行这个命令拿到pid,让后根据pid来判断Nginx是否启动。
推荐使用这种方式。
通过端口判断
第三种方法:使用netstat命令
如果我们的Nginx运行在80端口,那么就可以通过netstat-anp| grep:80命令来判断Nginx是否启动。
第四种方法:使用lsof命令
lsof-i:80也可以查到80端口进程是否有进程在运行。
Linux下查看进程一种实用方法查看linux查看进程
随着Linux发展壮大,查看进程相关指令也变得越来越重要。一般来说,我们可以在Linux系统下使用一些具体的命令来查看进程,具体来说可以分为以下几种。
首先,我们可以使用top命令查看进程,它是一个多功能的命令,可以用来查看实时的进程情况。如果你需要进一步了解一个进程,可以使用top命令来查看进程编号、进程名称、进程所使用的资源、进程运行状态等信息。
其次,我们还可以使用ps命令查看进程,它可以显示更加详细的进程信息,包括父进程、子进程以及它们之间的关系,另外还可以查看进程资源使用情况等。
第三,我们可以使用lsof(list open file)查看进程,它的主要功能是查找打开的文件,但是也可以查看网络相关的文件及进程,如TCP连接和UDP连接。
第四,我们可以使用netstat命令来查看进程,它可以显示系统当前开发的网络连接,包括TCP、UDP等连接,可以通过它查看进程所使用的端口号来判断进程是否存在。
最后,我们可以通过使用pstree命令查看进程状态,它可以显示出进程之间的关系及父进程与子进程之间的控制关系,可以帮助我们更好的查看进程的状态。
以上几种方法都可以帮助我们在Linux下查看进程状态,从而可以有效的分析问题所在,更好的优化系统性能。