在UNIX中,我有一个实用程序,比如'Test_Ex',一个二进制文件。我如何编写一个作业或shell脚本(作为一个cron作业),始终在后台运行,它会持续检查'Test_Ex'是否每5秒仍在运行(并可能隐藏此作业)。如果它正在运行,则什么也不做。如果不是,请删除指定路径中的目录。编写后台进程来检查进程是否仍然有效
1
A
回答
2
试试这个脚本:
pgrep Test_Ex > /dev/null || rm -r dir
如果没有pgrep
,使用
ps -e -ocomm | grep Test_Ex || ...
代替。
2
像upstart这样的工具,我认为最初是Ubuntu linux发行版的一部分,对于监视正在运行的任务很有用。
2
做到这一点的最好方法就是不要这样做。
#!/bin/sh Test_Ex logger "Test_Ex died" rm /p/a/t/h
或
#!/bin/sh while ! Test_ex do logger "Test_Ex terminated unsuccesfully, restarting in 5 seconds" sleep 5 done
查询PS经常是一个坏主意,并试图对其进行监控:如果你想知道,如果Test_Ex仍在运行,然后从脚本,看起来像启动来自cron是一个可怕的,可怕的想法。看来crond总是在运行,但你不能再依赖于这个想法,而不是依靠包装器脚本保持活力;任何一个人都可以随时被杀死。每10秒唤醒一次查询ps只是浪费资源。
相关问题
- 1. Android后台进程检查
- 2. 如何检查给定ID的进程是否仍然存在?
- 3. 如何检查正在运行的进程是否是后台进程?
- 4. 有没有办法检查子进程是否仍在运行?
- 5. 编程检查某个进程在后台中运行
- 6. 如何运行后台进程来检查用户会话是否结束
- 7. 是否仍然有效?
- 8. Sharekit是否仍然有效?
- 9. PHP后台进程仍然影响页面加载
- 10. 为后台进程编写测试(如后台作业)
- 11. 如何检查进程是否仍在c内核中运行?
- 12. C#,Windows 7:如何可靠地检查进程是否仍在写入文件?
- 13. 批处理程序来检查进程是否存在
- 14. 典雅地检查HTTPSession引用是否仍然有效
- 15. 检查自动更新订阅是否仍然有效
- 16. 检查一个URL是否仍然有效或永久移动
- 17. JavaScript Boolean检查Google Auth令牌是否仍然有效?
- 18. Android检测应用程序是否进入后台
- 19. 检查进程是否正在运行(使用进程名称)
- 20. 检查进程中是否存在进程
- 21. 检查进程是否正在运行
- 22. Boost.Process检查进程是否终止
- 23. 在后台进程
- 24. PHP后台进程
- 25. PHP后台进程
- 26. PHP后台进程
- 27. IIS后台进程
- 28. 根据后台进程启动进程
- 29. python守护进程线程退出但进程仍在后台运行
- 30. 检查存储过程是否有效
谢谢..程序是编辑crontab并添加这一行。这个手动任务可以使用shell脚本作为安装过程的一部分来完成吗? – Abhishek 2010-06-30 13:34:28
@Abhi:是的,只需将该行放入脚本文件即可。该文件的第一行应该是'#!/ bin/sh',并且'pgrep ...'命令行应该像'while:做pgrep ...;睡5次;完成“,然后在后台运行脚本:'scriptname&'。您可能需要保存PID,以便在某个时候可以杀死它。 – 2010-06-30 15:18:33