Articles of 背景

从后台进程redirectstdout&stderr

我有一个名为foo的脚本运行程序a.exe,并将计时统计信息发送到文件time.log #!/bin/bash date 1>> time.log (time ./a.exe) 2>> time.log 如果我在terminal的后台运行脚本,并保持我的shell打开,直到a.exe完成,但如果我在后台运行脚本并退出我的terminal(a.exe需要很长时间才能运行) foo & exit 当我回来,a.exe已经执行,但时间统计信息不会出现在我的日志文件。 有人知道为什么吗? 是否有一种方法可以在closures父shell之后获取计时统计信息? 谢谢

防止delayed_job后台作业在单个服务器上占用过多CPU

我的Rails应用程序有许多任务被卸载到后台进程中,比如图像大小调整和上传到S3。 我正在使用delayed_job来pipe理这些进程。 这些过程,特别是缩略图PDF(使用Ghostscript)和调整图像大小(使用ImageMagick),都是CPU密集型的,通常会消耗100%的CPU时间。 由于这些作业与Web应用程序本身以及数据库在相同的(RedHat Linux)服务器上运行,因此可能导致我们的Web应用程序无响应。 一个解决scheme是让另一台服务器只运行后台作业。 我想这将是最佳的解决scheme? 但是,由于这不是我能立刻做的事情,我不知道是否有可能以某种方式使后台作业以较低的操作系统优先级运行,并因此在工作中消耗较less的CPU周期? 感谢赞赏。

我如何捕获mouseevents和keyevents在Linux上使用python背景

我想制作一个可以在后台运行的python脚本,但是在mouseevent或keyevent发生时打印文本。 有没有任何库/内置function来实现这一点? 或者我可以调用任何系统命令来获取这些信息? 作为根是没有问题的。

把当前的Python程序带到后台

一个python脚本打印信息到屏幕,然后应该去背景。 如何从脚本内部做到这一点?

find由nohup命令运行的进程

我使用以下命令"nohup server &"在Centos中运行服务器可执行文件。 现在我需要杀死进程"server" 。 但是我尝试了"ps -a"命令来获得PID但是我无法得到这个过程。 现在如何杀死"server"呢?

我怎样才能把当前运行的Linux进程放在后台?

我有一个使用git将文件从Linux shell上传到远程服务器的命令,完成需要几个小时。 我怎样才能把这个正在运行的程序放在后台? 所以我仍然可以在shell上工作,这个过程也完成了吗?

如何知道C / C ++过程是否在后台运行?

我在我的过程中有一个方法,只有当进程不在后台时才应该运行。 如何dynamictesting当前进程是否在后台? 谢谢

如何在后台运行python脚本?

我有一个脚本,每5分钟检查我的电脑上的东西,我不希望Python显示在我的任务托盘上。 我使用Windows作为我的操作系统。 有什么办法让Python在后台运行,并强制它不显示在我的任务托盘?

我怎样才能从Windows上的Perl CGI脚本分叉后台进程?

在Windows上运行时,遇到了Perl CGI脚本的进程故障。 主要的问题似乎是,在Windows上运行时会模拟“fork”,而实际上并没有创build一个新的进程(只是当前的另一个线程)。 这意味着正在等待进程完成的Web服务器(如IIS)将继续等待,直到“后台”进程结束。 有没有在Windows下从CGI脚本中分离出后台进程的方法? 更好的是,我可以调用哪一个函数来实现跨平台的function? (只是为了让生活变得更加困难,我真的很喜欢将分叉进程输出redirect到一个文件的好方法)。

一个C / C ++程序如何将自己置于后台?

从命令行启动的运行C或C ++程序的最佳方式是如何将自己置于后台,等同于用户是否在命令末尾使用'&'从unix shell启动? (但用户没有。)这是一个GUI应用程序,不需要任何shellI / O,所以没有理由在发布后绑定shell。 但是我想要一个shell命令启动时自动后台没有'&'(或在Windows上)。 理想的情况下,我想要一个适用于任何Linux,OS X和Windows的解决scheme。 (或者我可以用#ifdefselect单独的解决scheme。)可以假定这应该在执行开始时正确地执行,而不是在中间的某个地方执行。 一个解决scheme是让主程序成为一个启动真实二进制文件的脚本,仔细地把它放到后台。 但是,需要这些耦合的shell/二进制对似乎并不令人满意。 另一个解决scheme是立即启动另一个执行的版本(使用“system”或CreateProcess),使用相同的命令行参数,但将subprocess放在后台,然后让父进程退出。 但是这个过程与背景相比似乎很笨重。 在几个答案后编辑 :是的,在Windows上的fork()(或system()或CreateProcess)是这样做的一种方法,我暗示在我原来的问题。 但是,所有这些解决scheme都会创build一个后台进程,然后终止原始进程。 我想知道是否有办法把EXISTING进程放到后台。 一个区别是,如果应用程序是从logging其进程ID的脚本启动的(可能是为了以后的查杀或其他目的),则新分叉或创build的进程将具有不同的id,因此不会由任何启动脚本控制,如果你看到我在做什么。 编辑#2 : fork()对于OS X来说并不是一个好的解决scheme,其中'fork'的手册页说如果使用某些框架或库,它是不安全的。 我试了一下,我的应用程序在运行时大声抱怨:“进程已经分叉了,你不能安全地使用这个CoreFoundationfunction,你必须执行exec()。 我被daemon()所吸引,但是当我在OS X上尝试它时,它给出了相同的错误信息,所以我认为它只是fork()的一个奇妙的包装,并且具有相同的限制。 请原谅OS X的中心主义,这恰好是我眼前的系统。 但是我的确在为这三个平台寻找解决scheme。