`
CYesheng
  • 浏览: 31566 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在Linux后台执行命令,防止程序被挂起

阅读更多

2012年5月29日    星期二    阵雨

    

      通常,我喜欢将java程序写好后放在Linux服务器上跑,这样可以解脱出自己的机器做其他事情。今天突然不小心将Linux客户端(xshell)关闭了。发现原来在linux服务器上跑的程序终止了,前功尽弃。

     

      如果能实现这样一个功能该多好。将我的程序放在Linux下跑,我退出客户端时候不影响程序的运行。当我再一次登陆客户端的时候,依旧能找到原来再跑的程序。

     

      经过尝试,方法如下:

      命令格式为: nohup command > log.file 2>&1 &

      解释:

             1、nohup使command命令不受shell退出的影响,忽略所有的挂起信号。

             2、command是我们要在linux下执行的命令或程序。

             3、>log.file将command命令输出的结果重定向到log.file文件中保存。

             4、2>&1表示将错误输出重定向到标准输出。由于标准输出已经重定向到了log.file文件,因此如果命 

                  令运行时发生错误,则错误提示也会被发送到log.file文件中。

             5、最后的&代表此条命令是后台执行的。

     

      当运行了nohup command > log,file 2>&1 &后,command命令就进入了后台运行。linux终端可以用来做其他事情。即便是退出终端,只要是不关闭linux服务器,command的命令就会一直执行到完成。

     

  • 如果想查看command命令的执行情况,可以做如下操作:1、如果当前终端没有关闭,输入命令jobs即可。2、如果终端已经关闭了,则重新打开终端,输入ps -ef | grep java (假设此处的command是一条java命令)。其中-e表示显示所有进程,-f表示以全格式显示。
  • 如果想查看命令的标准输出情况,可以查看log.file文件。命令为tail -f log.file。其中参数-f表示即时输出文件变化后追加的数据。要退出,则直接按ctrl+c即可。
  • 如果想终止后台运行的程序,使用jobs或者ps查看程序的pid。使用命令 kill %pid 杀掉指定的任务。
  • 若命令已经在前台执行,要转为后台执行。则ctrl+z将任务挂起。然后bg %n使其后台继续执行。其中n为任务的pid。
  • 如果将后台命令转为前台命令,使用fg %n。 n为任务的pid,使用jobs或者ps均可查到。

        如有疑问,请联系我。15210807601@163.com

分享到:
评论

相关推荐

    详解linux后台运行和关闭、查看后台任务

    其次,`ctrl + z`是一个快捷键组合,它能够将当前前台执行的命令挂起并送入后台,此时任务的状态是暂停的。你可以通过`jobs`命令查看当前有哪些后台任务,`jobs -l`则会显示每个任务的PID(进程ID)以及它们的状态,...

    Linux shell命令初学解析

    - `&`:后台进程工作,使命令在后台执行。 - `'`:单引号,其中的内容被视为字符串,不会发生命令替换。 - `*`:通配符,表示任何多个字符。 - `"`:双引号,其中的内容允许变量替换和命令替换。 - `(` 和 `)`:用于...

    入门学习Linux常用必会60个命令实例详解doc/txt

    要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。 不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。这里笔者把比较重要和使用频率最多的命令...

    linux在TQ2440上移植8--启动看门狗

    在Linux系统中,看门狗(Watchdog)是一种硬件或软件机制,用于监控系统的稳定性,如果系统出现故障或挂起,看门狗可以自动重启系统,确保服务的连续性。在TQ2440开发板上移植Linux并启动看门狗涉及到多个步骤,包括...

    linux下使用ssh启动停止weblogicf服务.docx

    SSH是一种加密的网络协议,用于在不安全的网络上安全地执行命令和传输数据。要连接到远程Linux服务器,你可以使用`ssh`命令,如`ssh 用户名@服务器IP地址`。 2. **后台启动WebLogic**: 为了确保WebLogic服务器在...

    Linux大神的学习笔记

    - `Ctrl + z`: 将任务挂起并转入后台,但当用户退出后,该任务会被终止。 - `Ctrl + t`: 颠倒光标位置及之前的字符。 - `Alt + t`: 交换当前单词与前一个单词的位置。 - `Alt + d`: 剪切光标后的单词。 - `Ctrl...

    Linux系统分析与高级编程技术2

    - 使用Ctrl+Z挂起当前进程,`bg`命令使其在后台继续执行,`fg`命令将其恢复至前台。 #### 四、外壳下的常用命令 1. **更改密码:** - 使用`passwd`命令更改账户密码。 - 需要输入旧密码、新密码及其确认。 - ...

    bash_shell内建命令和保留字

    3. **bg** 命令:将挂起的作业(job)放到后台继续运行,允许用户在不中断作业的情况下执行其他任务。 4. **bind** 命令:关联Readline库中的关键字序列或宏,自定义键盘快捷键。 5. **break** 保留字:在循环(如...

    linux操作系统实验报告(2).pdf

    5. `Ctrl+C`可中断前台进程,`jobs`命令查看后台进程,`kill`或`killall`命令终止后台进程,`bg`命令将前台进程挂起至后台。 6. 使用`at`命令设定定时任务,如5分钟后执行`df -k`检查磁盘空间。 7. 通过`rpm -qf`...

    LINUX 与 UNIX SHELL编程指南

    ### 后台执行命令 - **cron 和 crontab**: 定时任务调度器,用于自动化周期性任务。 - **at**: 提交一次性任务执行。 - **&命令**: 将命令放到后台执行。 - **nohup**: 在后台运行程序时忽略挂起信号。 ### 文件名...

    linux守护进程

    在Linux系统中,守护进程是一种后台服务程序,它们在启动后与控制终端脱离,并在后台持续运行,为用户提供服务或者执行特定的任务。守护进程是操作系统中最常见的进程类型之一,如网络服务(HTTP服务器如Apache)、...

    Linux下关于网络编程

    shell作为用户与系统的接口,用于执行命令和脚本;应用程序则提供具体的用户功能。 **2.2 输入和输出** - **2.2.1 UNIX/Linux文件系统简介**:UNIX/Linux采用了层次化的文件系统结构,所有文件都被视为一个大的...

    【嵌入式软件工程师面经】Linux系统编程(线程进程).pdf

    4. **阻塞与非阻塞I/O的区别**:阻塞I/O会挂起当前线程直到操作完成,而非阻塞I/O会在没有数据可读写时立即返回。 5. **使用管道通信**:管道是一种半双工的通信方式,通常用于父子进程之间。 6. **信号**:信号是由...

    苏州科技学院操作系统期末复习整理.doc

    进程有就绪、执行和阻塞三种基本状态,有时还会有挂起状态。临界资源是同一时间只能被一个进程访问的资源,管理临界区是防止资源竞争的关键。进程控制块PCB是操作系统管理和控制进程的基础,包含进程的状态、资源...

    bash多任务的参考脚本

    在Bash中,可以在命令末尾添加`&`符号将任务发送到后台执行,例如: ``` command & ``` 这使得Shell可以立即返回控制权给用户,而无需等待命令执行完毕。此特性是实现多任务处理的基础。 #### 使用`wait`命令等待...

    php模拟ping命令(php exec函数的使用方法)

    system函数同样可以用于后台任务的执行,但需要确保程序输出被重定向到文件或其他输出流,否则PHP脚本会挂起等待命令完成。 在上述提供的PHP代码中,通过调用系统的ping命令来实现ping功能,代码使用了exec函数,并...

    监视进程的时间,运行状态等信息的程序

    3. **运行状态**:进程的运行状态通常包括就绪、运行、等待、挂起等。了解进程的状态可以帮助我们判断系统资源的分配情况,例如,如果大量进程处于等待状态,可能意味着I/O操作繁忙;而若大部分进程都处于运行状态,...

    看门狗代码

    这样的软件实现可以模拟硬件看门狗的功能,通过系统调用来周期性地重置计数器,防止系统挂起。 看门狗代码的核心在于它的工作原理。一般来说,它会启动一个后台进程,该进程会定期向看门狗发送“心跳”信号,表明...

    嵌入式软件面试题整理.pdf

    - **进程挂起**:进程被暂时挂起,通常由系统或父进程操作。 #### 常见外设配置项 - **GPIO**:配置输入输出方向。 - **UART**:设置波特率、数据位等。 - **I2C/SPI**:配置时钟速度等。 以上是嵌入式软件领域...

Global site tag (gtag.js) - Google Analytics