我正在做一个C项目,我需要处理大量的数据。有没有办法在30分钟后自动停止程序,然后在我再次运行程序时恢复?有没有办法停止和恢复C程序
2
A
回答
4
有没有自动方式来做到这一点。如果您使用的是Unix系统,则可以在程序运行时按下Ctrl + Z以发送STOP信号。它会等待,直到您再次发送一个CONT信号(最简单的方法是使用shell命令fg
)。已停止的进程仍驻留在内存中,但未运行。
有更复杂的方法可以将正在运行的程序的“快照”保存到磁盘。稍后,您可以加载快照并继续执行该程序。例如,请参见CryoPID。
1
简短的回答:没有付出一些努力让程序'自我休眠',没有。
如果你在UNIX上运行,那么我确信你可以设置一个cron作业来在需要时暂停/恢复程序。在Windows下,你不会享受到这样的奢侈。
2
你可以自动化它。正如已经提到的那样,Crtl-Z和fg只不过是信号。在Unix中,您可以使用kill命令发送它们。所以kill -19 $ PID会停止你的进程(当$ PID是它的PID时)并且kill -18会继续它。
你只需要编写一个包装脚本,看起来像:
#!/bin/sh
PIDFILE=wherever/myprogram.pid
if [ -e $PIDFILE ]; then
kill -18 `cat $PIDFILE`
else
myprogram &
echo $! > $PIDFILE
fi
sleep 30
kill -19 `cat $PIDFILE`
(很短的,未经检验的,你要小心删除pidfile进程文件,当你杀的过程)。第一次运行它时,它会开始执行(30秒),稍后它将撤销你的程序。你可以改进它,例如通过在开始时检查进程列表中是否存在程序进程,以及是否已删除pid文件。所以它在重新启动或终止您的过程后甚至可以正确运行。
相关问题
- 1. 有没有办法暂停/恢复SwingWorker
- 2. 有没有办法恢复wordpress更新?
- 3. 有没有办法恢复SharePoint
- 4. 有没有办法恢复VS2010设置?
- 5. 有没有办法停止QGraphicsScene?
- 6. 有没有办法停止OnItemSaving事件?
- 7. 有没有办法防止重复?
- 8. 有没有办法阻止捕获停止我的Java应用程序?
- 9. 有没有办法以编程方式停止web.py?
- 10. 有没有办法用python启动/停止linux进程?
- 11. 有没有办法停止magento索引器进程?
- 12. 有没有办法多次启动和停止SwingWorker ..?
- 13. iphone - 停止和恢复方法
- 14. 停止和恢复优化
- 15. 线程的Runnable - 停止和恢复
- 16. 有没有办法停止应用程序通知,而无需iPhone设置?
- 17. 有没有办法从wayback机器恢复整个网站?
- 18. 有没有办法在Debian中恢复默认文件权限?
- 19. 有没有办法在颠覆提交中自动恢复?
- 20. 有没有办法将索引恢复到以前的版本?
- 21. 有没有办法在无效的Char值上恢复iterparse?
- 22. 有没有办法在visual studio 2005中恢复变更集2005
- 23. 有没有办法从BehaviorSubject的错误中恢复?
- 24. 有没有办法设置HTML5拖动效果? (即不恢复)
- 25. 有没有办法恢复绝对布局库的内容?
- 26. 做'rmelem'后有没有办法恢复元素?
- 27. 有没有办法按时间表恢复MySQL数据库
- 28. 当暂停和恢复线程时没有更新UI
- 29. 有没有办法从python编译c/C++程序?
- 30. 有没有办法阻止基于ncurses的程序运行?
而不是任意实现特定的数字,你应该使用'-STOP'和'-CONT' ... – 2011-05-06 10:58:52