在Linux中有时你须要将脚本(test.sh)和可运行程序(exe)后台运行,请使用例如以下方式:

nohup ./test.sh &

nohup ./exe &

这样执行的程序能够彻底在后台执行,为什么呢?由于假设你的脚本或者可执行程序中有echo。cout这样的向标准输出设备输送内容的指令,普通的后台执行:

./test.sh &

./exe &

是无法满足要求的,当指令往标准输出设备输出。而当前shell窗体正好被关闭之后,指令就 找不到标准输出设备,程序就会退出。这当然不是你要的后台执行。

可是加上nohup后,nohup会在当前文件夹创建nohup.out文本文件。当有内容须要传输到标准输出设备时就会重定向到此文本文件,程序就能够真正的后台执行了。

以下的脚本和C++代码能够測试上面的观点:

shell脚本test.sh

#!/bin/bash
while((1))
do
echo "Hello"
sleep 1
done

C++ 代码:每隔一秒钟向标准输出打印一行内容

#include <iostream>
#include "ace/Log_Msg.h"
#include "ace/Event_Handler.h"
#include "ace/Reactor.h"
using namespace std;
#include "ace/Thread_Manager.h" class My_Timer_Handler : public ACE_Event_Handler
{
public:
My_Timer_Handler(const int delay,const int interval);
~My_Timer_Handler(); virtual int handle_timeout (const ACE_Time_Value ¤t_time,
const void *);
private:
int i;
long id;
}; My_Timer_Handler::My_Timer_Handler(const int delay,const int interval):i(0)
{
this->reactor(ACE_Reactor::instance());
id=this->reactor()->schedule_timer(this,
0,
ACE_Time_Value(delay),
ACE_Time_Value(interval));
} My_Timer_Handler::~My_Timer_Handler()
{
cout<<"~My_Timer_Handler()"<<endl;
} bool stop_event_loop = false; int My_Timer_Handler::handle_timeout (const ACE_Time_Value ¤t_time,
const void *act = 0)
{
cout<<"hello handle_timeout"<<++i<<endl;
} int main(int, char *[])
{
My_Timer_Handler temp_timer(0,1);
while(true)
{
ACE_Reactor::instance()->handle_events();
}
};

Linux后台执行的更多相关文章

  1. Linux后台执行脚本 &与nohup

    Linux后台执行脚本的方式: 0.脚本代码 [root@VM_1_3_centos apps]# cat test.php <?php sleep(5); echo "hello w ...

  2. Linux后台执行命令:&和nohup nohup和&后台运行,进程查看及终止

    nohup和&后台运行,进程查看及终止   阅读目录 nohup和&后台运行,进程查看及终止 1.nohup 2.& 3.nohup和&的区别 &:是指在后台运 ...

  3. 在linux后台执行脚本

    1. 使用&符号在后台执行命令 你可以在Linux命令或者脚本后面增加&符号,从而使命令或脚本在后台执行,例如:. $ ./my-shell-script.sh & 2. 使用 ...

  4. Linux后台执行的方法 - 关闭、退出不影响

    =============================================================================================nohup c ...

  5. Linux后台执行脚本文件,nohup

    看运维人员执行nohup命令后,把程序放在后台执行,很高大上,就研究了一下,这个命令. nohup命令及其输出文件 nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么 ...

  6. linux后台执行命令&

    当在前台运行某个作业时,终端被该作业占据:而在后台运行作业时,它不会占据终端.可以使用&命令把作业放到后台执行. 如:30 2 * * * /data/app/scripts/hotbacku ...

  7. linux后台执行命令:&和nohup

    当我们在终端或控制台工作时,可能不希望由于运行一个作业而占住了屏幕,因为可能还有更重要的事情要做,比如阅读电子邮件.对于密集访问磁盘的进程,我们更希望它能够在每天的非负荷高峰时间段运行(例如凌晨).为 ...

  8. 【liunx】linux后台执行命令:&和nohup

    当我们在终端或控制台工作时,可能不希望由于运行一个作业而占住了屏幕,因为可能还有更重要的事情要做,比如阅读电子邮件.对于密集访问磁盘的进程,我们更希望它能够在每天的非负荷高峰时间段运行(例如凌晨).为 ...

  9. linux 后台执行命令

    本文主要内容: 1. 设置ctontab文件,并用它来提交作业. 2. 使用at命令来提交作业. 3. 在后台提交作业. 4. 使用nohup命令提交作业. 名词解释: cron 系统调度进程.可以使 ...

随机推荐

  1. Android O 通知栏的"running in the background"

    Android O新增的一个特性,系统会在通知栏显示当前在后台运行的应用,其实际是显示启动了前台服务的应用,并且当前应用的Activity不在前台.具体我们看下源码是怎么实现的. 1 APP调用sta ...

  2. 了解Selenium与自动化测试第一天“云里雾里”

    以前没有搭建过Selenium自动化功能测试环境,想象中就像QTP一样,集成IDE一般简单快捷. 昨天通过博客园的一篇博友日志,才开始大概认识到Selenium的工作方式与特征: 1.插件般与浏览器结 ...

  3. spark查看stage和tasks信息

    spark提供了web-ui接口.外部命令等多种方法监视spark程序的执行状态.利用spark的监视功能,可以方便的查看spark应用程序执行的状态,具体包括:1)stage和tasks列表信息  ...

  4. [Windows Server 2008] Windows防火墙设置

    ★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com ★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频. ★ 本节我们将带领大家:如何开启W ...

  5. (转)淘淘商城系列——商品搜索功能Service实现

    http://blog.csdn.net/column/details/15737.html 首先我们在taotao-search-interface工程中新建一个SearchService接口,并在 ...

  6. Understanding and Analyzing Application Crash Reports

    Introduction When an application crashes, a crash report is created and stored on the device. Crash ...

  7. DWARF调试格式的简介

    DWARF调试格式的简介 Michael J. Eager, Eager Consulting Feb, 2007 翻译:吴晖 2012年2月 如果我们可以编写确保能正确工作且永远不需要调试的程序,这 ...

  8. jmeter普通的接口测试

    摘自:后知者.https://www.cnblogs.com/houzhizhe/p/6838731.html jmeter可以做接口测试,其中接口测试的简单操作包括做http脚本(发get/post ...

  9. VC++代码转换为QT代码问题总结

    一边开发一边总结......  QQ937113547

  10. Calendar的用法

    DAY_OF_MONTH的主要作用是cal.get(DAY_OF_MONTH),用来获得这一天在是这个月的第多少天 Calendar.DAY_OF_YEAR的主要作用是cal.get(DAY_OF_Y ...