脚本查看进程
⑴ 帮写一个BAT脚本,“判断进程是否存在,并执行相对应操作的BAT脚本”
这是一个简单的批处理脚本示例,用于检测特定进程是否存在,并执行相应的操作。脚本的主要逻辑是,首先检查“ntaskldr.exe”进程是否在运行。如果存在,则输出1(表示进程存在),否则,终止“DSMDaemon.exe”进程。
脚本的具体步骤如下:
1. 使用“@echo off”命令关闭命令回显,使脚本运行时不会显示每条命令。
2. 使用“:1”创建一个标签,便于循环。
3. 使用“for /f %%i in ('tasklist') do (if /i "%%i"=="ntaskldr.exe" (echo 1 > nul) else (taskkill /f /im DSMDaemon.exe > nul))”命令行循环遍历所有正在运行的进程,检查是否包含“ntaskldr.exe”。如果找到,输出1(表示进程存在),否则终止“DSMDaemon.exe”进程。
4. 使用“ping -n 6 127.0.0.1 > nul”命令模拟延迟,使脚本每隔6秒执行一次。
5. 使用“goto 1”命令使脚本回到标签1,实现循环执行。
这个脚本主要用于自动化管理进程,确保在特定条件下正确地执行任务。它可以在系统启动时自动运行,或者作为计划任务的一部分定期执行。
需要注意的是,这个脚本需要有适当的权限才能成功终止进程。此外,它假设“ntaskldr.exe”和“DSMDaemon.exe”是目标系统上的有效进程名。在实际应用中,可能需要根据具体情况进行调整。
在编写类似的脚本时,应仔细考虑其对系统的影响,确保不会无意中导致系统不稳定或数据丢失。建议在测试环境中先进行充分测试,确保脚本按预期工作。
同时,使用批处理脚本时,应注意安全性,避免执行恶意代码。确保脚本中使用的命令和参数是可信的,避免脚本被篡改。
⑵ grep在shell脚本中使用,判断进程是否存在,进程不存在则重启
在shell中,判断一个进程是否存在,是判断进程数量
没有运行进程时,如下显示,只有一条,这条就是这条命令的进程。
如果进程存在就会显示多条进程信息,其中一条包括命令这条。
所以判断是否存在,只要判断数量即可,命令为
进程大于1,则进程存在正常,显示如下:
以下是最简单的判断内容,判断进程数量小于等于1,则进程不存在,然后重启即可。
shell判断相关参数:
需注意的坑:
grep 需要加上参数 -w ,意为精确匹配。如果不加上 -w ,判断进程数量会不准确。
例:判断一个名为 info.py 的脚本内容: ps -ef |grep info.py
不加 -w ,会把包括 info.py 都显示出来,如 info_py , info 之类的。所以显示数量远大于实际进程数量。
所以写脚本时必须加上 -w 参数,显示只有 info.py 的内容。
grep其他参数参考:
脚本完成后,需添加系统定时任务。
⑶ shell脚本判断是否有某进程在运行
1 、可以通过ps命令获取所有的进程,然后通过awk命令提取进程名,再用grep提取相应的进程名即可。
2、参考代码如下:
ps-aux|awk'{print$11}'|grep"^$1">/dev/null
case$?in
0)
echo"findprocess$1"
;;
1)
echo"$1isnotrunning"
;;
*)
echo"unknowerror"
esac
3、运行结果如下
⑷ windows下批处理脚本,定时检查某一进程是否存在,若不存在则通知用户打开此进程;若存在则退出。
@echo off
:x
tasklist /nh|find /i "进程.exe"
if ERRORLEVEL 1 (Msg %username% 进程.exe不存在,请启动此进程。 ) else (ping -n 3 127.1>nul)
goto x
这个是相隔3秒检测一次,检测不到会弹出消息,检测到则三秒后循环检查