AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 414341
Accepted
Davoud Taghawi-Nejad
Davoud Taghawi-Nejad
Asked: 2012-08-05 14:00:45 +0800 CST2012-08-05 14:00:45 +0800 CST 2012-08-05 14:00:45 +0800 CST

将 nohup 重定向到标准输出

  • 772

是否可以让一个进程以 nohup 启动,写入 stdout 而不是写入文件?或者可能在文件和屏幕上?

nohup python start.py &

写入nohup.out,但我希望它输出到屏幕,nohup 仅在连接中断时用作对冲。

nohup
  • 3 3 个回答
  • 27717 Views

3 个回答

  • Voted
  1. dsh
    2012-08-05T14:07:26+08:002012-08-05T14:07:26+08:00

    来自man nohup:

    如果标准输入是一个终端,将它从 /dev/null 重定向。如果标准输出是一个终端, nohup.out 如果可能,将输出附加到,$HOME/nohup.out否则。如果标准错误是终端,则将其重定向到标准输出。要将输出保存到 FILE,请使用 nohup COMMAND > FILE.

    (完全根据评论修改)
    当退出shell或关闭终端时,子进程将发送SIGHUP(挂断,名称源于终端拨入UNIX计算机时的时间)告诉他们终端没有连接时间更长。此外,当 shell 进程结束时,子进程的 stdin、stdout 和 stderr 流将被关闭。通常这会导致子进程死亡。通常这是一件好事,因为它避免了让进程在没有用户的情况下运行。

    该nohup程序的目的是即使在 shell 终止和终端断开连接后也能保持进程运行。因此,将其输出定向到终端完全违背了目的。我最初的回答 ( nohup COMMAND | cat) 没有帮助,因为:当终端关闭时,cat 的输出关闭,因此 cat 死亡,这会破坏管道并将 SIGPIPE 发送到 nohup 进程,导致它死亡。我没有考虑目的就回答了这个问题。

    为了实现您的目的,请运行nohup COMMAND > FILE以选择要直接输出到的文件的名称。然后用于tail -f FILE观察终端上的输出。

    类似地,可以使用以下 shell 构造:COMMAND >FILE 2>&1 </dev/null &运行一个命令,其 stdio 流未连接到终端,并且可以在终端关闭后继续运行。此外,在 zsh 中,运行 shell-builtindisown告诉 zsh 离开进程而不是在 shell 结束时杀死它。

    • 10
  2. Best Answer
    Henk Langeveld
    2012-08-05T16:21:48+08:002012-08-05T16:21:48+08:00

    您可以通过一个单独的进程来检查文件,或者通过使用终端多路复用器(如screen或)来实现这一点tmux。

    1. nohup python start.py & tail -f nohup.out

    tail -f可以随意杀掉重启,不影响python进程。

    1. screen python start.py并随意断开/重新连接。
    • 6
  3. Vladimir Gamaley
    2020-01-17T10:03:24+08:002020-01-17T10:03:24+08:00
    vladimir@lin-mint-cin:~$ tty<br>
    /dev/pts/8<br>
    vladimir@lin-mint-cin:~$ ln -sf /dev/pts/8 nohup.out<br>
    vladimir@lin-mint-cin:~$ nohup ls<br>
    nohup: ввод игнорируется, вывод добавляется в 'nohup.out'<br>
    2019-05-31-090159.jpg    giphy.gif        nim_porojects   sketchbook
    Aptana_Studio_Workspace  IdeaProjects         nohup.out       target
    Desktop          jack_capture_01.wav  Pictures        Templates
    Documents        lib              Postman         tmp
    Downloads        mad              Projects        trace.edn
    eclipse          Mail             prolog_ws       uinfild_hill-iskusstvo_shemotehniki_tom_1_izd4-e-1489315100.pdf
    eclipse-dsl-workspace    Music            proxy-secret    Videos
    eclipse-workspace    mygolo           Public          workspace-dltk
    erlang_ex        my_golo_ws       rust-workspace  проекты
    
    • -1

相关问题

  • Linux进程管理

  • 有什么方法可以在 Windows 的后台运行进程?Windows 的 nohup 等效项

  • 作业控制和 ssh

  • 我可以 nohup/screen 已经启动的进程吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve