`
kabike
  • 浏览: 611257 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

shell退出后后台程序保持运行

阅读更多
在liunx上,如果想让一个进程在后台运行,最直接的方法是用&符号.
比如ping www.baidu.com &
但是这样一来,这个进程便成为了当前shell的一个job,在shell退出时,job会收到一个信号,也随之停止.
处理这个问题,可以使用nohup命令,让job忽略shell的退出信号,也可以采用其他方式.

既然后台命令作为shell的子进程会在shell退出时被杀掉,那么只要不让后台命令作为shell的子进程即可.比较简单的方式是利用subshell来调用后台命令.
比如写个start.sh

#!/bin/bash
ping www.baidu.com &

然后在shell中调用start.sh.

./start.sh

我猜测虽然start.sh是ping命令的父进程,但是start.sh运行完毕就退出了,ping命令成了孤儿进程,会被init进程收养.所以退出shell也不会导致ping命令中断
分享到:
评论

相关推荐

    Ubuntu下后台持续运行Python程序

    1. **使用nohup命令**:`nohup python your_script.py &` 这个命令会忽略挂断信号(hangup),使得程序在用户退出终端后仍能继续运行。输出会被重定向到`nohup.out`文件,除非另有指定。 2. **使用screen工具**:`...

    shell 后台执行命令

    在Linux和Unix操作系统中,`shell`后台执行命令是一个重要的功能,它允许用户在不阻塞终端的情况下运行程序。这通常适用于那些长时间运行或者需要在特定时间执行的任务,以便用户可以继续其他工作。 首先,`cron`是...

    后台执行shell命令

    这些命令允许我们无需保持终端会话打开即可运行程序,极大地提高了工作效率。本文将深入探讨标题中提到的几种后台执行命令,包括`at`、`&`以及`nohup`。 首先,`at`命令是一个定时任务调度器,它允许你在指定的时间...

    unix shell程序设计

    Unix Shell程序设计主要关注的是如何使用Bourne Shell(sh)进行高级程序设计。Shell作为Unix系统中的一个重要组成部分,不仅充当命令解释程序的角色,解析并执行用户输入的命令,还能作为一个高级程序设计语言,...

    linux-pushblast当一个shell程序退出时获取PushBullet通知

    当用户运行一个shell命令或脚本时,可以与pushblast结合,一旦shell程序结束运行(无论是正常退出还是遇到错误),pushblast都会通过PushBullet服务发送一条消息到用户的设备上,告知程序的状态。这提供了一种远程...

    Linux后台运行py服务程序1

    `nohup`(not hang up,不挂断)命令允许程序在用户退出终端后继续运行。例如,`nohup python /data/python/server.py > python.log 2>&1 &`这个命令不仅将标准输出重定向到`python.log`,还把标准错误(STDERR)也...

    一个让cmd命令可以在后台运行的小程序

    8. **退出后运行**:如果希望程序在退出后仍然执行命令,可以设置一个守护进程或者计划任务,确保即使程序关闭,指定的CMD命令也能继续执行。 综上所述,这个小程序通过巧妙地结合Windows API和批处理脚本,提供了...

    后台运行.pdf

    - nohup命令:使用`nohup command`可以让程序在用户退出终端后仍然继续运行,避免被SIGHUP信号终止。 - disown命令:在某些shell中,可以使用`disown`命令将已运行的后台进程从当前会话中分离,使其不受hangup信号...

    Linux查看和关闭后台运行程序的方法

    后台程序是指那些即使在用户退出终端或关闭shell会话后仍能继续运行的进程。本篇将详细介绍如何在Linux系统中查看和关闭这些后台运行的程序。 首先,让我们了解一下如何启动一个后台运行的程序。通常,我们可以直接...

    java运行shell脚本方法示例

    在Java编程中,有时我们需要在程序中执行操作系统级别的任务,比如运行Linux的Shell脚本。这时,我们可以利用Java内置的`Runtime`类的`execute`方法来实现这一目标。本文将详细讲解如何在Java中使用`Runtime.execute...

    操作系统实验报告 shell程序

    - `exit`:退出Shell程序。 3. **管道和输入输出重定向**:用户可以使用管道(`|`)将一个命令的输出作为另一个命令的输入,或者使用重定向符号(`>`和`)改变命令的输入和输出源。 4. **作业控制**:ysh应支持...

    The C Shell tutorial

    4. **作业控制**:支持在后台或前台运行程序,便于多任务处理。 5. **shell脚本**:通过shell语法编写程序,实现自动化任务。 6. **键盘快捷键**:提供快捷键以提高操作效率。 C Shell的编程特点还包括: 1. **...

    shell程序编写.doc

    用户退出Shell时,控制权会返回给`init`,内核回收资源。 3. **命令执行流程** 用户输入的命令通过Shell解析,找到对应的可执行文件,由内核创建子进程执行。例如,执行`ls`命令时,Shell找到`/bin/ls`,内核创建...

    Bourne shell编程入门

    Bourne shell支持多种环境变量,如`CDPATH`、`HOME`、`IFS`、`MAIL`、`PATH`、`PS1`、`PS2`和`TERM`,这些变量对shell的运行环境和行为有着重要的影响。 ### 保留字符与特殊符号 Bourne shell中有若干保留字符和...

    标准后台程序kill 重启脚本.

    在IT行业中,管理和控制后台程序是日常操作的重要部分。标题提到的"标准后台程序kill重启脚本"是指一组用于管理后台服务的自动化脚本,通常包括启动、停止和重启等功能。这些脚本对于系统管理员来说非常实用,可以...

    C语言实现的一个shell程序源码以及PDF版报告

    这个shell程序不仅具备了基本的命令执行功能,还增加了对管道(pipe)、重定向(redirection)以及后台执行(background execution)的支持,这些都是在Linux环境下进行程序设计时非常重要的特性。 首先,我们来看`...

    Linux后台运行Python程序的几种方法讲解

    `nohup`命令允许程序在用户退出终端后继续运行。要使用`nohup`运行Python程序,可以按照以下格式输入命令: ``` nohup python 文件名.py (> ***.log )& ``` 在这里,`python`指定了要执行的Python解释器,`...

    后台运行系统托盘功能

    总的来说,后台运行系统托盘功能是提高用户体验和程序效率的重要手段,它使得程序能在不影响用户界面的同时,持续提供服务并与用户保持互动。在设计和实现这类功能时,应注重易用性和资源管理,以确保软件的稳定性和...

    unix、Linux命令解释程序 shell

    标题中的“unix、Linux命令解释程序 shell”指的是Unix和Linux操作系统中的命令行接口,也就是Shell。Shell是一个用户与操作系统交互的界面,它接收用户输入的命令并执行相应的操作。在这个项目中,你需要实现一个...

    Linux 后台执行程序如何操作?.docx

    在Linux系统中,后台执行...在实际应用中,确保后台程序正确运行的关键是处理好输入输出重定向和错误处理。通常,使用`>/dev/null 2>&1`来将标准输出和错误输出重定向到黑洞,防止填满日志文件或终端。例如: ```bash ...

Global site tag (gtag.js) - Google Analytics