服务程序后台运行代码

使程序脱离终端,完全放在后台运行代码:

void daemon(void) {                                  
  int fr=0;                                               
                                                          
  fr = fork();                                            
  if( fr < 0 ) {                                          
    fprintf(stderr, "fork() failed\n");                   
    exit(1);                                              
  }                                                       
  if ( fr > 0 ) {                                         
    exit(0);                                              
  }                                                       
                                                          
  if( setsid() < 0 ) {                                    
    fprintf(stderr, "setsid() failed\n");                 
    exit(1);                                              
  }                                                       
                                                          
  fr = fork();                                            
  if( fr < 0 ) {                                          
    fprintf(stderr, "fork() failed\n");                   
    exit(1);                                              
  }                                                       
  if ( fr > 0 ) {                                         
    fprintf(stderr, "forked to background (%d)\n", fr);   
    exit(0);                                              
  }                                                       
                                                          
  umask(0);                                               
                                                          
  chdir("/");                                             
  close(0);                                               
  close(1);                                               
  close(2);                                               
                                                          
  open("/dev/null", O_RDWR);                              
  dup(0);                                                 
  dup(0);                                                 
}
时间: 2024-12-19 22:02:30

服务程序后台运行代码的相关文章

submit 后台运行代码

if EX_TABLE-matnr is not initial and EX_TABLE-KUNDE is not initial.       wa_rspar-selname = 'MATNR'.       wa_rspar-kind = 'S'.       wa_rspar-sign = 'I'.       wa_rspar-option = 'EQ'.       wa_rspar-low  = EX_TABLE-matnr.       APPEND wa_rspar TO r

clang: error: no such file or directory: &#39;/Users/smile/Downloads/代码/04-ItcastWeibo(后台运行)/ItcastWeibo

clang: error: clang: error: no such file or directory: '/Users/smile/Downloads/代码/xxx clang: error: no input files Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang failed with exit code 1 解决办法: 在你的主工程文件 target搜素,pch ,找到Pr

php后台运行以及定时任务的4种实现原理以及代码

后台任务在我们php编程中虽然用的不是很多甚至很多php程序员都没听过甚至觉得后台运行是不可能实现的,本人因为项目需求多次演变在这里分享给大家,本人第一次想实现后台运行是利用 方法二 在其执行完成后输出一段Js代码让页面再次执行,然后在服务器中打开该页面!以下实现方式除了方法一我不推荐使用外其他我在项目中都使用过! 方法一.php自带函数实现后台运行(不推荐使用,不太稳定而且弊端很多)set_time_limit  允许运行的最长时间,0表示不限制sleep 运行后延时多久在运行后面的代码 当我

iOS- 使后台可以运行代码 比如定时器

//后台运行定时器 -(void)applicationDidEnterBackground:(UIApplication *)application{ UIApplication*   app = [UIApplication sharedApplication]; __block  UIBackgroundTaskIdentifier bgTask; bgTask = [app beginBackgroundTaskWithExpirationHandler:^{ dispatch_asyn

nobup 与 后台运行命令

1. Linux进程状态:R (TASK_RUNNING),可执行状态&运行状态(在run_queue队列里的状态) 2. Linux进程状态:S (TASK_INTERRUPTIBLE),可中断的睡眠状态, 可处理signal 3. Linux进程状态:D (TASK_UNINTERRUPTIBLE),不可中断的睡眠状态, 可处理signal, 有延迟 4. Linux进程状态:T (TASK_STOPPED or TASK_TRACED),暂停状态或跟踪状态, 不可处理signal, 因为根

svn集成ReviewBoard,让post-commit hook后台运行

代码评审(Code Review)不但可以提高质量,而且还是一个知识共享和指导的极好的手段. 代码评审(CodeReview)一般有两种形式:pre-commit-review,post-commit-review. pre-commit-review是指代码提交到代码库前进行代码评审: post-commit-review是指代码提交到代码库后进行代码评审. ReviewBoard是一个开源的基于web的代码评审工具,支持Subversion,CVS,Git和Mercurial版本控制系统.

脚本应用之八:ping工具同时监控多主机(后台运行,并显示)

作用:通过ping工作实时监控多台主机 实现:多进程后台运行,并分区域显示 使用:将欲监控的主机作为参数 演示: 代码专区: #/bin/bash #  LY #  ------------------ #  Copyright 2016.04.14  LingYi ([email protected]) QQ:1519952564 #  "monitor hosts by batch ping in the background" all_sum=0  success_sum=0 f

iOS 后台运行实现 --备用

文一 我从苹果文档中得知,一般的应用在进入后台的时候可以获取一定时间来运行相关任务,也就是说可以在后台运行一小段时间. 还有三种类型的可以运行在后以,1.音乐2.location 3.voip 文二 在IOS后台执行是本文要介绍的内容,大多数应用程序进入后台状态不久后转入暂停状态.在这种状态下,应用程序不执行任何代码,并有可能在任意时候从内存中删除.应用程序提供特定的服务,用户可以请求后台执行时间,以提供这些服务. 判断是否支持多线程 UIDevice* device = [UIDevice c

iOS后台运行的设置方法

关于让程序保持后台运行有两种方方法: 1.直接上图:(当后台的内存实在是没有的时候,系统就会终止后台运行,也就是说这个的时间不确定的,这种方式是可怜的像后台申请后台运行的要求,是很可怜的的一种方法!!) 2.配置plist文件:在Info.plist中声明自己的应用类型为audio.在后台播放mp3(共有五种方法,这里不一一赘述,仅以audio为例,其余基本相似) 2.1>>>> 添加UIBackgroundModes中audio值,注册后台音频应用.这个值使得应用程序可以在后台使