Articles of nohup

无法得到nohup,open_init_pty和sudo一起工作

我努力将nohup,open_init_pty和sudo结合在一起。 像这样的东西: nohup open_init_pty sudo bash -c "command1;command2" 我的要求有点奇怪: 使用nohup,所以父shell可以干净地退出 open_init_pty实际上是通过PHP的远程SSH,这需要这个 sudo运行特权命令 运行多个命令 – 因此是bash -c行 我试图用不同的组合来缩小问题的范围: # works OK, output in nohup.out nohup sudo bash -c "echo hello" # works OK, hello output to console open_init_pty sudo bash -c "echo hello" # doesn't work nohup open_init_pty sudo bash -c "echo hello" 我究竟做错了什么??

后台作业变成守护进程而没有nohup / disown?

一个奇怪的东西给我一个脚本while.sh,它的内容是: while [ 1 ];do sleep 1 echo `date` done 运行$ while.sh>&while.log&(没有nohup或disown或setsid或双fork())退出并重新login可以看到这个过程仍然存在,它的ppid是1,它的tty是? 我的系统是rhel6(rhel5是相同的,bash 在centos5.x中,它必须使用nohup或disown或者在代码中执行双叉() 在rhel6中发生了什么

Linux nohup进程在使用tailf时终止

这是我的脚本( run.sh ): rm -f nohup.out nohup myproc & tailf nohup.out 如果我运行脚本( sh run.sh ),然后按Control-C , myproc将被终止,但是如果我评论tailf nohup.out部分, myproc将按预期在后台运行。 我做错了什么?

Shell脚本在成功执行后离开进程

我写了一个shell脚本,它使用nohup调用其他schell脚本。 脚本成功完成后,我仍然看到Linux进程正在运行我写的自定义脚本。 startAllComponents.sh的内容 start_Server() { SERVER_HOME=${1} NOHUP_LOG_FILE=${2} logmsg "Starting the server" /usr/bin/nohup `${SERVER_HOME}/bin/server.sh >> ${NOHUP_LOG_FILE} 2>&1 ` & sleep 5 PID=`ps -ef|grep ${SERVER_HOME}/jvm |grep -v grep| awk '{print $2}'` if [ "${PID}" = "" ] then logmsg "Couldn't get the PID after starting the server" else logmsg "****** Server started with PID: ${PID} ****** " […]

在R中停止nohup并行模拟

我需要取消在R服务器上使用R启动的并行处理模拟。 昨晚我使用ssh连接到服务器,并使用nohup命令从shell启动模拟:nohup R CMD BATCH mysimulation.R mysimulation.R文件使用多核程序包中的mclapply命令来产生R的其他实例以并行运行模拟。 例如,当我在shell中运行top时,会看到十个不同的R运行实例,然后完成模拟运行,然后再次开始继续进行其他模拟复制。 我几乎没有直接使用Linux服务器的经验(我的知识范围是cd,ls和上面提到的nohup命令)。 我search了一下解决scheme,并认为杀死这个过程可能会奏效。 我试过了: 杀-9 mypid(这表示它杀死了进程)。 但是,仿真继续运行。 我可以看到R的实例继续运行,closures和重生。 任何人都可以指点我的资源,或者走过我需要采取的closures这个模拟的具体步骤吗? 谢谢。

奇怪的Ruby输出滞后nohup?

在nohup下运行时,我看到一些Ruby脚本的混淆行为。 基本上我是这样做的: require 'logger' logger_file = open('/mnt/dbsdata/output.log', File::WRONLY | File::APPEND | File::CREAT) LOGGER = Logger.new(logger_file) LOGGER.level = Logger::INFO def run_command(cmd,display=true) if display LOGGER.info "Executing: #{cmd}" end output = `#{cmd} 2>&1` ; results=$?.success? if ! results LOGGER.error "FAILED to execute #{cmd}" LOGGER.error output return false end return true end begin run_command("some_longrunning_command", true) run_command("some_other_longrunning_command",true) # etc… end […]

nohup不适用于铬

我正在做一个小的shell脚本,启动后启动各种程序。 我使用dialog来制作菜单,然后使用一个简单的case语句来运行所需的应用程序。 除了我最喜欢的浏览器Chromium以外,一切正常。 nohup chromium &不起作用 – 当我closuresterminal铬也closures。 这是我的脚本: selection=`dialog –menu "Choose a session:" 20 50 10 "Surfing" "" "Surfing (blank)" "" "Programming" "" "Gaming" "" "Nothing" "" –stdout` case "$selection" in "Surfing" ) nohup chromium http://www.facebook.com & nohup chromium http://www.twitter.com & nohup chromium http://reader.google.com & nohup chromium http://plus.google.com & nohup chromium http://www.youtube.com & nohup […]

启动/停止后台Python进程,而不用nohup + ps aux grep + kill

我通常使用: nohup python -u myscript.py &> ./mylog.log & # or should I use nohup 2>&1 ? I never remember 开始一个后台Python进程,即使我注销,我也想继续运行,并且: ps aux |grep python # check for the relevant PID kill <relevantPID> 它的工作原理,但做这些步骤是一件烦人的事情。 我已经阅读了一些需要将PID保存在某个文件中的方法,但是这更麻烦。 有没有一个干净的方法来轻松启动/停止Python脚本? 喜欢: startpy myscript.py # will automatically continue running in # background even if I log out # two days later, […]

在nohup.out中看不到任何更改

我有一个Python脚本,我用这个命令在服务器上运行: sudo nohup python fetch_script.py & 它会在同一个目录下创build一个nohup.out文件。 几天后,我回来试图检查,我做了: tail -f nohup.out 它给了我一个结果: root@xx-xxx-xxx-xx:/home/ubuntu# tail -f nohup.out 8809896 8809897 8809898 8809899 8809900 8809901 8809902 8809903 8809904 8809905 我等了一下,但没有任何事情发生。 该脚本应该发送消息到RabbitMQ并更新计数并打印出来。 脚本一直在运行,我知道,因为我可以看到新的消息,经常来。 但是nohup.out卡住了。 我也用ls -l命令检查它是否改变了大小,但是还是没有运气。 你知道可能是什么原因吗? 我认为这将最终更新,但不知道需要多长时间。 那么是否有任何方法来不断更新这个文件? 在这种情况下, nice -20会有帮助吗? UPDATE 只要旋转日志,用/usr/sbin/logrotate等了一下,看到新nohup.out变化

在后台运行SCP并监视进度

我在后台运行一个scp命令: nohup scp file.gz root@target-host:/root/ > nohup.out 2>&1 我input密码 – 我按ctrl-z停止命令,并重新启动它,我可以通过执行jobs确认它正在运行。 然而,有没有一种方法来监视文件传输的进度(即如果我将它运行而不放置在后台)? 谢谢。