我有一个已经运行了很长时间并且不想结束它的进程.
我怎么把它放在nohup下(也就是说,即使关闭终端,如何让它继续运行?)
当我跑nohup some_command &
,输出去nohup.out
; man nohup
说要看看info nohup
哪个反过来说:
如果标准输出是终端,则命令的标准输出将附加到文件'nohup.out'; 如果无法写入,则将其附加到文件'$ HOME/nohup.out'; 如果无法写入,则不运行该命令.
但是,如果我已经有一个命令使用nohup
输出/nohup.out
,我想运行另一个nohup
命令,我可以将输出重定向到nohup2.out
?
两者nohup myprocess.out &
或myprocess.out &
将myprocess.out设置为在后台运行.关闭终端后,进程仍在运行.他们之间有什么区别?
我正在服务器上运行nohup进程.当我试图杀死它时,我的腻子控制台会关闭.
这是我尝试查找进程ID的方法:
ps -ef |grep nohup
Run Code Online (Sandbox Code Playgroud)
这是杀人的命令
kill -9 1787 787
Run Code Online (Sandbox Code Playgroud) 我使用以下命令在后台运行python脚本:
nohup ./cmd.py > cmd.log &
Run Code Online (Sandbox Code Playgroud)
但似乎nohup没有在日志文件中写入任何内容.cmd.log已创建但始终为空.在python脚本中,我使用sys.stdout.write
而不是print
打印到标准输出.我做错了吗?
我正在通过SSH连接访问运行CentOS(Linux发行版)的服务器.由于我无法始终保持登录状态,因此我使用"nohup [command]&"来运行我的程序.
我找不到如何获得我开始使用nohup的所有程序的列表."工作"只有在我退出之前才能解决.之后,如果我再次注销,则jobs命令不显示任何内容,但我可以在日志文件中看到我的程序仍在运行.
有没有办法获得我开始使用"nohup"的所有程序的列表?
我试过这样的事情:
subprocess.Popen(['nohup', 'my_command'],
stdout=open('/dev/null', 'w'),
stderr=open('logfile.log', 'a'))
Run Code Online (Sandbox Code Playgroud)
如果父脚本正常退出,则此方法有效,但如果我终止脚本(Ctrl-C),则所有子进程也将被终止.有办法避免这种情况吗?
我关心的平台是OS X和Linux,使用的是Python 2.6 和 Python 2.7.
Linux新手在这里.
我有一个perl脚本,它需要两个命令行输入.我试图在后台运行它但这就是我得到的:
[~user]$ nohup sudo ./ascii_loader_script.pl 20070502 ctm_20070502.csv &
[2] 19603
[~user]$ nohup: appending output to `nohup.out'
Run Code Online (Sandbox Code Playgroud)
系统返回"nohup:将输出附加到'nohup.out'"后,不会出现新提示.然后只要我输入其他命令,shell就会告诉我进程已停止:
[~user]$ nohup sudo ./ascii_loader_script.pl 20070502 ctm_20070502.csv &
[2] 19603
[~user]$ nohup: appending output to `nohup.out'
ls
ascii_loader_script.pl format_wrds_trd.txt nohup.out norm_wrds_trd.cfg
[2]+ Stopped nohup sudo ./ascii_loader_script.pl 20070502 ctm_20070502.csv
Run Code Online (Sandbox Code Playgroud)
我看过这篇文章并试图在执行命令之前做"sudo date".仍然有同样的事情. http://www.sudo.ws/pipermail/sudo-users/2003-July/001648.html
我正在使用SSH在远程服务器上启动后台进程.这就是我现在所拥有的:
ssh remote_user@server.com"nohup process&"
这是有效的,因为这个过程确实开始了.但是在我点击Ctr-C之前,SSH会话本身并没有结束.
当我点击Ctr-C时,远程进程继续在后台运行.
我想将ssh命令放在我可以在本地运行的脚本中,所以我希望ssh会话在远程进程启动后自动退出.
有没有办法让这种情况发生?
我执行了以下命令
$ nohup ./tests.run.pl 0 &
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试使用时将其杀死(以及从此脚本启动的执行)
$ kill -0 <process_id>
Run Code Online (Sandbox Code Playgroud)
这是行不通的.如何杀死nohupped进程以及通过nohupped脚本运行的进程?
谢谢