你好,通过这种方式确实将后台的守护进程给在暂停了,但是恢复后并不能继续执行暂停前的任务啊! PS:我的需求是这样的,上层应用程序将打印任务下发到打印缓冲队列中,而后台打印守护进程(cupsd)从缓冲队列中获取打印数据区打印。我想在打印守护进程获取打印数据之前将其阻塞,即先让打印守护进程停下来,等我将打印缓冲队列中的文件做了分析之后,再恢复打印守护进程,让其去打印。 通过发信号的方式确实让打印守护进程停下来了,但是等我分析完成之后,恢复打印守护进程,并不能打印我之前的任务啊! 请问问题出在哪啊!谢谢
C/C++ code?123char cmd_stop[32] = {0}; sprintf(cmd_stop,"kill -SIGSTOP %d",cupsd_pid); system(cmd_stop); cupsd_pid是我通过pgrep cupsd获取到得
char cmd_stop[32] = {0}; sprintf(cmd_stop,"kill -SIGSTOP %d",cupsd_pid); system(cmd_stop);
尝试着给cupsd进程发送了SIGSTOP信号(这个停止信号是在我的程序中发的),但执行结果是sh: line 0: kill: SIGSTOP: invalid signal specification 但单独执行kill -SIGSTOP pid却是可以的!不知道为什么,难道我获取的PID有问题!
守护进程不是自己实现的,系统本身就存在的(cupsd),就是想让这个守护进程在某个时间段阻塞!不知道有没有实现方法!
要阻塞的是系统的后台守护进程,pthread_mutex_timedlock、pthread_cond_timedwait好像是对线程的操作啊!
23,216
社区成员
74,539
社区内容
加载中
试试用AI创作助手写篇文章吧