Articles of 后台进程

cassandra nosql autorestart服务与chkserv.d

我没有太多的Linux经验,所以可能是我错过了一些明显的东西。 然而…我试图把Cassandra nosql放在CentOS上的chkserv.d中,所以它在中断时会自动启动。 我设法把它放在那里,当chkservd被破坏的时候它被正确的识别。 我这样说: root@server [/etc/chkserv.d]# cat cassandra service[cassandra]=x,x,x,/etc/init.d/cassandra start,cassandra,root 问题是什么时候,'cassandra start'被执行,在cassandra.out日志中我得到: /opt/cassandra/cassandra_home/bin/cassandra: line 141: exec: java: not found 在cassandra脚本的141行是: exec $ NUMACTL“$ JAVA”$ JVM_OPTS $ cassandra_parms -cp“$ C​​LASSPATH”$ props“$ class”<& – & 所有的环境variables都被正确的扩展了: java -ea -javaagent:/opt/cassandra/cassandra_home/bin/../lib/jamhreadPriorities -XX:ThreadPriorityPolicy=42 -Xms400M -Xmx400M -XnOutOfMemoryError -Xss180k -XX:+UseParNewGC -XX:+UseConcMarkSweeemarkEnabled -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=1 -XX:yFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -Djava.net.prefe.sun.management.jmxremote.port=7199 -Dcom.sun.management.jmxremon.management.jmxremote.authenticate=false -Dlog4j.configuration=es -Dlog4j.defaultInitOverride=true -Dcassandra-pidfile=/var/runpt/cassandra/cassandra_home/bin/../conf:/opt/cassandra/cassandraasses/main:/opt/cassandra/cassandra_home/bin/../build/classes/thassandra_home/bin/../lib/antlr-3.2.jar:/opt/cassandra/cassandra_e-cassandra-1.1.5.jar:/opt/cassandra/cassandra_home/bin/../lib/atutil-1.1.5.jar:/opt/cassandra/cassandra_home/bin/../lib/apache-5.jar:/opt/cassandra/cassandra_home/bin/../lib/avro-1.4.0-fixes.ssandra_home/bin/../lib/avro-1.4.0-sources-fixes.jar:/opt/cassann/../lib/commons-cli-1.1.jar:/opt/cassandra/cassandra_home/bin/..2.jar:/opt/cassandra/cassandra_home/bin/../lib/commons-lang-2.4assandra_home/bin/../lib/compress-lzf-0.8.4.jar:/opt/cassandra/clib/concurrentlinkedhashmap-lru-1.3.jar:/opt/cassandra/cassandraa-r08.jar:/opt/cassandra/cassandra_home/bin/../lib/high-scale-liandra/cassandra_home/bin/../lib/jackson-core-asl-1.9.2.jar:/opt/ome/bin/../lib/jackson-mapper-asl-1.9.2.jar:/opt/cassandra/cassajamm-0.2.5.jar:/opt/cassandra/cassandra_home/bin/../lib/jline-0.ra/cassandra_home/bin/../lib/json-simple-1.1.jar:/opt/cassandra//lib/libthrift-0.7.0.jar:/opt/cassandra/cassandra_home/bin/../lipt/cassandra/cassandra_home/bin/../lib/metrics-core-2.0.3.jar:/oa_home/bin/../lib/servlet-api-2.5-20081211.jar:/opt/cassandra/caib/slf4j-api-1.6.1.jar:/opt/cassandra/cassandra_home/bin/../lib/ar:/opt/cassandra/cassandra_home/bin/../lib/snakeyaml-1.6.jar:/oa_home/bin/../lib/snappy-java-1.0.4.1.jar:/opt/cassandra/cassandaptree-0.1.jar org.apache.cassandra.thrift.CassandraDaemon […]

后台进程closuresssh客户端后终止

我的问题和我已经在这里 , 这里和这里find的一样 。 但是,对我来说nohup不起作用。 编译screen给出错误,并且不允许,Control + Z不会使进程“停止”。 我运行一个将数据写入文件的数据生成二进制文件,并在屏幕上输出状态消息(stdout)。 我尝试了以下 nohup ./sp2b <options for sp2b> > output & 当我注销terminal并重新login时,进程已经被终止。 我其实也想花时间,所以想做的 nohup time ./sp2b <options for sp2b> > output & 为什么nohup不在我的情况下工作?

在Linux上使用Ruby on Rails的后台进程

我想做一些过程,比如发送电子邮件或在背景中使用ffmpeg命令,因为这需要花费很多时间。 我希望它应该在后台运行。 我正在使用Fedora 10.我也可以检查我的后台进程是否成功运行。 是否可行?如果是的话,我应该遵循的步骤是什么。任何帮助表示赞赏。 提前致谢。

用特定文本运行“虚拟”后台命令

我正在寻找一个bash命令,我可以在后台运行一段时间(60秒),并且该命令将包含一个特定的文本string,我可以grep出ps命令。 恐怕我不能释放一个“虚拟”脚本,所以它必须是一个一行命令。 我试过了 echo "textneeded">/dev/null && sleep 60 & 但是,当然,我唯一能想到的是睡眠,因为回声一闪而过。 (其原因是将另一个脚本放在“testing”模式下,所以它不会创buildsubprocess,但是确保没有运行这些进程的其他function仍然可以find某些东西,因此等待。在一个bash脚本里。)

在后台启动脚本时,我得到两个进程正在运行

我遇到了一个奇怪的场景,正在困扰着我。 我有一个脚本,我在后台启动一个& 例: root@# some_script.sh & 运行后,我做一个ps -ef | grep some_script,我看到两个进程正在运行的地方,第二个进程不断获得不同的PID,但是Parent是我开始的进程(就像父进程产生的subprocess一样 – 但从未写在代码中)。 例: root@# ps -ef | grep some_script.sh root 4696 17882 0 13:30 pts/2 00:00:00 /bin/bash ./some_script.sh root 4778 4696 0 13:30 pts/2 00:00:00 /bin/bash ./some_script.sh root@# ps -ef | grep some_script.sh root 4696 17882 0 13:30 pts/2 00:00:00 /bin/bash ./some_script.sh root 4989 […]

Linux Bash脚本同时ping多个主机

我有一个包含500个服务器名称的文本文件。 我需要同时ping所有这些,而不是一个一个循环,并把可ping通的一个文件和不可恢复的文件放在另一个文件中。 我可以在后台运行每个ping还是为每个ping创build一个新进程? 什么是最快和最有效的方法来实现这一目标?

等待并行远程进程完成bash ssh

我试图在后台运行几个Linux机器上的脚本。 我的bash脚本如下所示: for i in {1..1000}; do for j in {1..20}; do ssh -n -f remotehost$j "sh -c 'cd /blah/; nohup ./script.sh $i > /dev/null 2>&1 &'" NPROC=$(($NPROC+1)) if [ "$NPROC" -ge 40 ]; then echo "Waiting for work to finish" wait NPROC=0 fi done done 这是我试图限制服务器的负载,并且在任何给定时间只有40个进程运行超过20个主机。 这虽然不起作用,所有进程同时启动。 可以请您指导我如何等待远程后台进程完成或防止在给定的远程主机上启动超过n个进程。

如何从另一个会话中杀死后台任务?

我在后台运行了一个multithreading程序: ./my_task & 然后我退出,然后再次login。 现在jobs命令不显示这个程序,但是top显示了这个程序的线程。 所以它仍然在运行。 如何阻止它? 我想我可以杀死每个线程,但有很多,我不知道它将如何影响my_task程序。 我正在使用Debian Squeeze。

我如何与后台Python实例进行通信?

环境序言: 我在Vim中为Linux上的Maya编写Python代码。 我正在使用鼻子进行testing发现和执行,我使用它的属性插件来装饰仅有Maya的testing类。 我在Vim中使用映射来运行常规Python中的非Mayatesting,而Mayatesting通过Maya的mayapy可执行文件,它使我可以访问场景以及maya.cmds模块。 实际问题: mayapy每次打我的in-MayatestingVim映射需要6秒钟启动。 它变得非常乏味。 非玛雅testing发生的速度,我可以打他们的地图。 这有助于我从玛雅人身上抽象出更多的东西来避免那种微小的,全天的痛苦,但是我仍然喜欢它。 6秒开始感觉很长时间。 在Vim中有asynchronous工作的技巧,但是如果我的testing通过了,我不喜欢前进。 我问过Autodesk(Maya制造商),他们说在启动的时候没有办法。 题: 我想我想要的是在后台启动mayapy ,然后当我mayapy我的Vim映射时,让它连接到等待的Python实例并调用nose.run()命令。 我觉得mkfifo是要走的路,但我不确定详情。 我怎样才能做到这一点(通过mkfifo或其他)?

我怎样才能在后台运行的东西,并在Perl中redirect他们的输出?

my $pm = new Parallel::ForkManager(4); foreach my $array (@lines) { $pm->start and next; $cmd = 'command'; print "\n$cmd\n\n"; exec($cmd); $pm->finish; } $pm->wait_all_children; 正如你所看到的,我的代码一次运行4件事情。 这是pipe道video到X264。 它的输出是混乱的,并在4个输出之间的一条线上跳转。 有没有办法在后台完全运行这些,并redirect它的输出,所以我可以干净地打印和更新4个单独的输出? 这将是很好,所以我可以告诉每个过程有多远。 如果绝对不能用perl来完成的话,我会很乐意接受任何帮助来指导我使用另一种语言,这会让这个更简单。 顺便说一下,这是在Linux下。 谢谢。 Open2远远超出了我。 我将如何使用这个? 我无法掌握如何在不用新的线条的情况下打印每一件事情的进展。 我想打印任何每个进程正在执行的STDERR和STDOUT,并且当它结束时,将其保持为不更新的行。 这不是一个很好的解释,但我不知道如何解释我想要的。 基本上,前4个职位将有4条线不断刷新。 然后,当这些工作中的一个完成时,为新工作添加一个新行,并可能以某种方式指示已完成的工作完成。 我尝试了一个快速testing“打开”,它仍然输出到壳。 这是在Windows中,但它应该仍然performance一样。 这甚至可能与Perl,甚至在一个shell? 你好? 我仍然需要帮助…