首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux nohup不输出

nohup 是 Linux 系统中的一个命令,用于在后台运行程序,并且使程序忽略挂起(SIGHUP)信号。通常,当你关闭终端或者断开 SSH 连接时,系统会发送 SIGHUP 信号给所有前台运行的程序,导致它们被终止。使用 nohup 可以防止这种情况发生。

基础概念

  • SIGHUP 信号:当终端关闭或者用户注销时,系统会发送这个信号给所有与之关联的进程。
  • nohup 命令:使进程忽略 SIGHUP 信号,并且将其标准输出和标准错误输出重定向到一个文件中,通常是 nohup.out

相关优势

  • 允许程序在用户退出登录后继续运行。
  • 防止因终端关闭导致的程序中断。
  • 可以将程序的输出保存到文件中,便于后续查看。

类型与应用场景

  • 后台运行服务:如 Web 服务器、数据库服务等。
  • 长时间运行的任务:数据分析、批量处理脚本等。
  • 定时任务:通过 cron 结合 nohup 实现定时后台执行。

遇到的问题及原因

如果你发现使用 nohup 命令后程序没有输出,可能有以下几个原因:

  1. 输出被重定向到了文件:默认情况下,nohup 会将输出重定向到 nohup.out 文件中。
  2. 命令语法错误:可能是命令本身存在问题,导致没有执行。
  3. 权限问题:当前用户可能没有足够的权限执行该命令或写入输出文件。
  4. 程序内部逻辑:程序可能设计为不输出任何信息。

解决方法

  1. 检查输出文件: 查看 nohup.out 文件内容,确认是否有输出。
  2. 检查输出文件: 查看 nohup.out 文件内容,确认是否有输出。
  3. 指定输出文件: 使用 > 符号将输出重定向到指定的文件中。
  4. 指定输出文件: 使用 > 符号将输出重定向到指定的文件中。
  5. 检查命令语法: 确保命令本身没有语法错误,并且可以在前台正常运行。
  6. 检查权限: 使用 ls -l 查看文件权限,确保有写入权限。
  7. 检查权限: 使用 ls -l 查看文件权限,确保有写入权限。
  8. 调试程序: 如果程序是自定义的,可以在关键位置添加调试信息,确保程序逻辑正确。

示例代码

假设你要在后台运行一个 Python 脚本,并且希望将输出保存到 script.log 文件中:

代码语言:txt
复制
nohup python3 your_script.py > script.log 2>&1 &

这条命令会将标准输出和标准错误都重定向到 script.log 文件,并且在后台执行 Python 脚本。

通过以上步骤,你应该能够解决 nohup 不输出的问题。如果问题依旧存在,建议检查程序本身的日志记录机制或者进一步调试程序代码。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

linux nohup命令输出日志_nohup运行sh文件

这不得不找到了一个Linux命令:nohup (二)基本用法 nohup command [arg … ] [ & ] 拿python test.py 为例子 一般我们运行命令是直接:python test.py...nohup运行的三种情况:  1)无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。...2)如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。 3)如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。.../start.sh >> /usr/local/node/output.log 2>&1 & 该命令是把nohup的log输出到/usr/local/node/output.log 这个文件中 2).../start.sh 该命令是把nohup的log直接输出到当前目录下并保存为nohup.log (四)查看运行的后台进程 1)当我们把进程运行到后台后,我们再找回的时候,就需要用到: ps -aux|

4.3K10
  • Shell学习笔记之在linux定时任务crontab中使用nohup不输出到nohup文件

    0x00 概述 在linux定时任务crontab中使用nohup不输出到nohup文件,这时候需要做个重定向,将输出结果重定向到nohup文件即可. 0x02 增加重定向 最初的shell脚本,注意该脚本在命令行正常运行是可以把输出自动只想...nohup.out文件的 #!...,nohup输出是追加到日志文件,这样不会覆盖掉之前的日志文件 else echo "runing....." fi 在命令行直接sh这个脚本文件, 脚本的输出会自动定向到脚本同级目录的nohup.out...文件内; 但是当把这个脚本挂载到定时任务crontab内, 脚本的输出则不会定向到脚本同级目录的nohup.out文件内; 这时候需要做个重定向,注意两个脚本的区别: #!.../hlz/Desktop/test.log 2>&1 & # 执行启动脚本命令,nohup输出是追加到日志文件,这样不会覆盖掉之前的日志文件 else echo "runing....." fi

    2.5K40

    Linux 命令 | nohup

    Linux 命令 nohup 命令解析 nohup 是一个在 Linux/Unix 系统中常用的命令,它的作用是在后台运行一个命令或脚本,并且不会因为终端的关闭而终止。...并且输出会被重定向到一个名为 nohup.out 的文件。...Linux 命令 nohup 命令注意事项 使用 nohup 运行的命令或脚本在默认情况下会忽略挂起信号,但如果你想在终端关闭时收到通知,可以使用 -n 参数。...在使用 nohup 时,最好将输出重定向到一个文件,这样可以避免输出被写入多个文件而导致的混乱。...如果你的脚本需要接收输入或使用管道将输出发送到另一个命令,那么这些操作不会在后台执行, 在这种情况下,你可以使用 -p 参数来将输入或输出重定向到一个文件。例如,使用 nohup -p .

    55140

    Linux nohup 用法

    ,nohup是一个忽略HUP signal的POSIX命令行,如果nohup没有设置重定向的话,标准输出和标准错误缺省会被重定向到nohup.out的文件中,当然你也可以自定制重定向文件。...自定制重定向 正如我们之前提到一样,如果我们不指定重定向输出的话。...那么它会生成一个nohup.out文件。比如说我们再程序里面有print或者类似的输出流都会写入到nohup.out里面。那么这对于我们调试和开发而言很不方便,特别是有的系统本省重写了类似Log系统。...如果指定输出重定向文件的话,在nohup运行时每次都是覆盖。...我们先来看一下简单的命令: nohup command > test.log 2>&1 & 1代表了标准输出即(stdout) 2代表了标准错误输出即(stderr) 上面的脚本意思是:将command

    4.9K51

    nohup命令–linux后台运行程序并实时查看输出

    然后同学向我推荐了nohup命令,于是我就非常愉快的使用起来啦~ 之前听过这个命令,但是没有太在意它的作用和用法,这次是有需要了,所以就学习了一下。...为了自己以后查看以及帮助更多的人用这个命令解决困扰,所以这篇博客就诞生啦~ 正文 直接上命令: nohup python -u main.py > log.file 2> &1 & jobs -l 条命令只对当前终端有效...nginx java php uwsgi 等等等等 1 命令解释: 1、【python main.py】是你原本运行程序的命令 2、【-u】 这个参数加在python的后面,是为了可以实时查看输出...参考:实时查看输出 3、【log.file】将输出保存到这个文件中 4、末尾以&结束 注意 1、注意空格的使用。不要在不该有空格的地方有空格,在该有空格的地方没有空格。...1、实时查看输出的命令: tail -f log.file 1 是不是简洁并且清晰明了~点赞评论来一波哈哈哈哈哈哈~

    5.2K51

    linux的nohup命令

    在应用Unix/Linux时,我们一般想让某个程序在后台运行,于是我们将常会用 & 在程序结尾来让程序自动运行。...咨询红旗Linux工程师后,他也不得其解,在我的终端上执行后,他启动的进程竟然在关闭终端后依然运行。...无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。...参考:https://www.cnblogs.com/songgj/p/8998049.html Linux的重定向 0:表示标准输入; 1:标准输出,在一般使用时,默认的是标准输出; 2:表示错误信息输出...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    1.7K20

    Linux:Nohup命令详解

    导读 可以在Linux下永久的在后台执行程序。 1、简介 nohup 命令运行由 Command参数和任何相关的Arg参数指定的命令,忽略所有挂断(SIGHUP)信号。...在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中。...),2 – stderr (standard error) ; 2>&1是将标准错误(2)重定向到标准输出(&1),标准输出(&1)再被重定向输入到myout.file文件中。...nohup sh test.sh 将sh test.sh任务放到后台,关闭标准输入,终端不再能够接收任何输入(标准输入),重定向标准输出和标准错误到当前目录下的nohup.out文件,即使关闭xshell...nohup sh test.sh & 将sh test.sh任务放到后台,但是依然可以使用标准输入,终端能够接收任何输入,重定向标准输出和标准错误到当前目录下的nohup.out文件,即使关闭xshell

    14.5K30

    Linux之nohup命令

    nohup命令 可以将程序以忽略挂起信号的方式运行起来,被运行的程序的输出信息将不会显示到终端 无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。...命令后台执行,正常输出和错误输出到a.log文件 > nohup command > a.log 2>&1 & 2>&1 解释 将标准错误 2 重定向到标准输出 &1 ,标准输出 &1 再被重定向输入到...后台下载文件 > nohup wget https://repo.huaweicloud.com/java/jdk/8u172-b11/jdk-8u172-linux-x64.tar.gz & // 查看后台的进程...8u172-linux-x64.tar.gz & 下载过程中,输出在nohup.out文件中,可以使用tail -f nohup.out动态查看 后台运行SpringBoot项目 > nohup java.../linux-nohup.html 微信公众号:入门小站

    1.8K00

    Linux命令之nohup

    Linux命令之nohup 用途:不挂断地运行命令。...那么,把两个结合起来nohup 命令 &这样就能使命令永久的在后台执行 再说说重定向,操作系统中有三个常用的流:   0:标准输入流 stdin   1:标准输出流 stdout   2:标准错误流 stderr...这就是为什么 nohup ./command.sh >output 2>output出错的原因了 。 0,1,2可以用来指定需要重定向的标准输入或输出。在一般使用时,默认的是标准输出,既1。...2>&1:将错误信息重定向到标准输出。 Linux下还有一个特殊的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪,任何东西都可以定向到这里,但是却无法打开。.../root/下,如果文件很大的话,nohup.out就会不停的增大,这是我们不希望看到的,因此,可以利用/dev/null来解决这个问题。

    2.3K10

    linux的nohup命令的用法

    在应用Unix/Linux时,我们一般想让某个程序在后台运行,于是我们将常会用 & 在程序结尾来让程序自动运行。...nohup /root/start.sh & 在shell中回车后提示: [~]$ appending output to nohup.out 原程序的的标准输出被自动改向到当前目录下的nohup.out...咨询红旗Linux工程师后,他也不得其解,在我的终端上执行后,他启动的进程竟然在关闭终端后依然运行。...无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。...该命令的一般形式为:nohup command & 使用nohup命令提交作业 如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件

    3.7K20

    Linux系列 | 了解nohup和&的功效

    输出至nohup.out”的提示 Tinywan的输出也没有出现在前台 www@manager1:~$ ps -aux |grep php www 17557 0.0 1.2 210596...登录Linux时,系统会分配给登录用户一个终端(Session)。在这个终端运行的所有程序,包括前台进程组和后台进程组,一般都属于这个 Session。...当用户退出Linux登录时,前台进程组和后台有对终端输出的进程将会收到SIGHUP信号。这个信号的默认操作为终止进程,因此前台进 程组和后台有终端输出的进程就会中止。...&运行程序后,可以看到 会在终端显示进程号是 17947 也会有一个“忽略输入,输出至nohup.out”的提示 键入Ctrl + C,发送SIGINT信号,似乎没反应。...结论 使用 &后台运行程序: 结果会输出到终端 使用Ctrl + C发送SIGINT信号,程序免疫 关闭session发送SIGHUP信号,程序关闭 使用 nohup运行程序: 结果默认会输出到nohup.out

    1.3K21
    领券