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

linux sh nohup

nohup 是 Linux 系统中的一个命令,用于在后台运行程序,即使用户退出登录也不会终止该程序的执行。这个命令非常有用,尤其是在需要长时间运行的任务或者服务器维护时。

基础概念

nohup 命令的全称是 "no hang up",它的作用是忽略挂起(SIGHUP)信号。当用户注销或断开终端连接时,系统会发送 SIGHUP 信号给所有由该终端启动的进程,通常这会导致这些进程终止。使用 nohup 命令可以防止这种情况发生。

优势

  1. 持续运行:即使用户退出登录,程序也会继续运行。
  2. 后台执行:可以将程序放到后台执行,不影响前台操作。
  3. 日志记录:默认情况下,nohup 会将程序的输出重定向到一个名为 nohup.out 的文件中。

类型

nohup 命令本身没有类型,它是一个 shell 内置命令。

应用场景

  • 长时间运行的脚本:如数据分析、备份任务等。
  • 服务器维护:在服务器重启或维护时保持服务运行。
  • 后台服务:启动 Web 服务器、数据库服务等。

使用示例

假设你有一个名为 long_running_script.sh 的脚本,你想让它持续运行,即使你退出了终端,你可以这样使用 nohup

代码语言:txt
复制
nohup ./long_running_script.sh &

这条命令会将脚本放到后台运行,并且将输出重定向到 nohup.out 文件。如果你想指定输出文件,可以这样做:

代码语言:txt
复制
nohup ./long_running_script.sh > my_log_file.log 2>&1 &

这条命令会将标准输出和错误输出都重定向到 my_log_file.log

遇到的问题及解决方法

如果你遇到了 nohup 命令不起作用的情况,可能是以下原因:

  1. 权限问题:确保你有足够的权限来执行该命令。
  2. 脚本错误:检查脚本是否有语法错误或其他问题。
  3. 资源限制:系统可能对进程数量或资源使用有限制。

解决方法:

  • 使用 chmod 命令给予脚本执行权限。
  • 在命令前加上 sudo 来提升权限(如果需要)。
  • 检查系统日志或脚本输出文件来诊断问题。

注意事项

  • 使用 nohup 后,进程ID会被打印到屏幕上,你可以使用这个ID来管理进程(如杀死进程)。
  • 如果你不指定输出文件,nohup.out 文件会在当前目录下创建,确保你有权限写入该目录。

通过以上信息,你应该能够理解 nohup 命令的基础概念、优势、应用场景以及如何解决常见问题。

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

相关·内容

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

这不得不找到了一个Linux命令:nohup (二)基本用法 nohup command [arg … ] [ & ] 拿python test.py 为例子 一般我们运行命令是直接:python test.py.../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|...grep start.sh a:显示所有程序 u:以用户为主的格式来显示 x:显示所有程序,不以终端机来区分 用ps -def | grep查找进程很方便,最后一行总是会grep自己 用grep...-v参数可以将grep命令排除掉 ps -aux|grep start.sh| grep -v grep 2)查看使用某端口的进程 netstat -ap|grep 8090 3)查看到进程id之后,

4.3K10

Linux 命令 | nohup

Linux 命令 nohup 命令解析 nohup 是一个在 Linux/Unix 系统中常用的命令,它的作用是在后台运行一个命令或脚本,并且不会因为终端的关闭而终止。...为方便读者理解,林一写个具体的 demo: 假设你有一个需要长时间运行的脚本 my_script.sh, 并且你希望在睡觉期间让它继续运行。 你可以使用以下命令:nohup ..../my_script.sh & 这将在后台运行 my_script.sh,并且输出会被重定向到 nohup.out 文件。即使你关闭终端或退出登录,脚本也会继续运行。...Linux 命令 nohup 命令注意事项 使用 nohup 运行的命令或脚本在默认情况下会忽略挂起信号,但如果你想在终端关闭时收到通知,可以使用 -n 参数。...例如,使用 nohup -p ./my_script.sh < input.txt & 将从 input.txt 中读取输入

55140
  • Linux nohup 用法

    所以我就选择了比较简单的nohup命令,比较轻量也很容易部署。 nohup 当用户logout、网络中断和断开连接时,中断会接收到HUP(hangup)信号从而关闭其所有运行的子进程。...,nohup是一个忽略HUP signal的POSIX命令行,如果nohup没有设置重定向的话,标准输出和标准错误缺省会被重定向到nohup.out的文件中,当然你也可以自定制重定向文件。...并且一般在nohup命令后面加入&来表示将命令同时放入后台运行。...我们先看一个比较简单的demo: nohup ping www.brianlv.com & tail -f nohup.out 看到的结果如下图所示: ?...如果你不想重定向到任何文件包括nohup.out,想使用自己的Log系统可以这样设置。 nohup command > /dev/null 2>&1 &

    4.9K51

    Linux:Nohup命令详解

    导读 可以在Linux下永久的在后台执行程序。 1、简介 nohup 命令运行由 Command参数和任何相关的Arg参数指定的命令,忽略所有挂断(SIGHUP)信号。...4、举例 sh test.sh & 将sh test.sh任务放到后台 ,即使关闭xshell退出当前session依然继续运行,但标准输出和标准错误信息会丢失(缺少的日志的输出)。...将sh test.sh任务放到后台 ,关闭xshell,对应的任务也跟着停止。...nohup sh test.sh 将sh test.sh任务放到后台,关闭标准输入,终端不再能够接收任何输入(标准输入),重定向标准输出和标准错误到当前目录下的nohup.out文件,即使关闭xshell...nohup sh test.sh & 将sh test.sh任务放到后台,但是依然可以使用标准输入,终端能够接收任何输入,重定向标准输出和标准错误到当前目录下的nohup.out文件,即使关闭xshell

    14.5K30

    linux的nohup命令

    在应用Unix/Linux时,我们一般想让某个程序在后台运行,于是我们将常会用 & 在程序结尾来让程序自动运行。...可是有很多程序并不想mysqld一样,这样我们就需要nohup命令,怎样使用nohup命令呢?这里讲解nohup命令的一些用法。...nohup /root/start.sh & 在shell中回车后提示: [~]$ appending output to nohup.out 原程序的的标准输出被自动改向到当前目录下的nohup.out...咨询红旗Linux工程师后,他也不得其解,在我的终端上执行后,他启动的进程竟然在关闭终端后依然运行。...参考:https://www.cnblogs.com/songgj/p/8998049.html Linux的重定向 0:表示标准输入; 1:标准输出,在一般使用时,默认的是标准输出; 2:表示错误信息输出

    1.7K20

    Linux .sh文件

    Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。...Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。linux中.sh文件是什么?linux中.sh文件是脚本文件,一般都是bash脚本。...想运行的话就用sh命令运行sh xxx.sh。注:sh或是执行脚本,或是切换到sh这个bash里,默认的shell是bash。...当然,linux中sh是链接到bash上的,所以sh与bash在功能上是没有区别的。...还有就是在执行脚本的时候是用sh + 脚本名的方式来执行,其实,大部分的时候,简单脚本只要权限设置正确,可以直接执行,不需要sh命令的。

    9.4K20

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

    如果不关闭终端的情况,想结束该进程,可以使用kill命令:kill-917153 使用 nohup www@manager1:~/build$ nohup php tinywan.php nohup:...登录Linux时,系统会分配给登录用户一个终端(Session)。在这个终端运行的所有程序,包括前台进程组和后台进程组,一般都属于这个 Session。...当用户退出Linux登录时,前台进程组和后台有对终端输出的进程将会收到SIGHUP信号。这个信号的默认操作为终止进程,因此前台进 程组和后台有终端输出的进程就会中止。...不过可以捕获这个信号,比如wget能捕获SIGHUP信号,并忽略它,这样就算退出了Linux登录,wget也能继续下载。 此外,对于与终端脱离关系的守护进程,这个信号用于通知它重新读取配置文件。...nohup 和 & 同时使用 终端运行 www@manager1:~/build$ nohup php tinywan.php & [1] 17947 www@manager1:~/build$ nohup

    1.3K21

    Linux进阶命令-nohup&screen

    通过这些操作,让你对Linux的操作更加得心应手,具体分成以下章节进行讲解: Linux进阶命令-echo&date&alias Linux进阶命令-top Linux进阶命令-ps&kill Linux...进阶命令-sort&wc Linux进阶命令-sed&split Linux进阶命令-awk&uniq Linux进阶命令-逻辑或&逻辑与 Linux进阶命令-重定向 Linux进阶命令-scp Linux...进阶命令-rsync Linux进阶命令-rsync-daemon Linux进阶命令-nohup&screen(本章节) Linux进阶命令-lsof Linux进阶命令-小结 由于部分程序是需要在前台启动...nohup nohup 是一个在 Unix 和 Linux 系统中使用的命令,用于在后台运行程序,并使得程序在用户注销或终端关闭时仍然继续运行。...nohup需要关注的就是它产生的日志文件,避免打满磁盘,尤其你你在根分区里面运行的nohup命令。

    10910
    领券