Shell: nohup守护进程化

如果想在终端会话中启动shell脚本,然后让脚本一直以后台模式运行,直到其完成,即使你退出了终端会话,可以使用nohup命令实现。感觉nohup就是将一个进程初始化为一个守护进程。 nohup命令运行了另一个命令来阻断所有发送给该进程的SIGHUP信号。这会在退出终端会话时阻止进程退出。

由于nohup命令会从终端解除进程的关联,进程会丢掉到STDOUT和STDIN的链接,为了保存该命令产生的输出,nohup命令会自动将STDOUT和STDERR的消息重定向到一个名为nohup.out的文件中。

************************************************************************************

演示脚本如下,很简单:

===============================================
执行的命令格式为:nohup ./tmp.bash
&
,输出会到nohup.out中

转载来自:http://blog.sina.com.cn/s/blog_ac9fdc0b0101pciy.html

时间: 2024-11-01 16:26:30

Shell: nohup守护进程化的相关文章

PHP程序守护进程化

转载自: https://mp.weixin.qq.com/s?__biz=MzI0MjEwMDMzNQ==&mid=403709703&idx=1&sn=08b93d2280649b606b2b003ec8baeb96&scene=0&key=710a5d99946419d9e91dfefbc33d6bead9b7f9cc6f07ea5630fa284b9a79724ef7ca950e42913809c98c7ff89668d298&ascene=0&am

PHP系统编程--02.PHP守护进程化

什么是守护进程? 一个守护进程通常补认为是一个不对终端进行控制的后台任务.它有三个很显著的特征:在后台运行,与启动他的进程脱离,无须控制终端.常用的实现方式是fork() -> setsid() -> fork() 在glibc里有一个函数daemon.调用此函数,就可使当前进程脱离终端变成一个守护进程,具体内容参见man daemon.PHP中暂时没有此函数,PHP程序实现守护进程化有2种方法: 使用系统命令nohup nohup php myprog.php > log.txt &a

linux shell脚本守护进程监控svn服务

最近搭建的svn服务不知道什么原因服务总是被关闭(如果你不知道怎么搭建svn可以参考linux下搭建svn版本控制软件),因此用shell脚本实现一个守护进程.用于监控svn服务是否启动,如果服务不在则启动. 创建监控脚本svnmonit.sh #! /bin/sh #进程名字可修改 PRO_NAME=svnserve PORT=58652 REP_DIR=/www/svndata while true ; do #用ps获取$PRO_NAME进程数量 NUM=`ps aux | grep ${

centos7用shell创建守护进程,并设置为系统服务,开机自动启动

首先是创建shell守护进程:(shouhu.sh) #!/bin/bash test(){         while true         do                 ls ./  >> 123.txt                 sleep 5                              done } case $1 in start)         path="/root/shouhu.pid"         if [ -f $p

shell 脚本实现的守护进程

转自:http://blog.csdn.net/cybertan/article/details/3235722 转自:http://blog.sina.com.cn/s/blog_4c451e0e0100giqg.html 设想:用一个shell查看一个后台运行的PHP程序是否非正常退出 如果退出,利用守护进程自动restart. 类似mysql的safe_mysqld 共3个程序 shstart.sh 负责启动 sh.sh 守护进程主程序 shstop.sh 安全退出守护进程和php程序主体

《网络编程》守护进程

前言 守护进程是在后台运行并独立于所有终端控制的进程.守护进程没有控制终端源于它们通常是由系统初始化脚本启动,但是也有可能从某个终端由用户在 shell 提示符下键入命令行启动,这种启动方式的守护进程必须亲自脱离与控制终端的关联,从而避免与作业控制.终端会话管理.终端产生信号等发生任何不期望的交互,也可以避免在后台运行的守护进程非预期地输出到终端.有关作业控制.终端控制的内容可参考文章<作业控制.终端控制 和 守护进程> 由于守护进程没有控制终端,当守护进程出错时,必须通过某种输出函数输出错误

php程序守护进程

php命令程序实习守护进程2种方式: 1.使用nohup nohup php myprog.php > log.txt & 2.使用程序 function daemonize() { $pid = pcntl_fork(); if ($pid == -1) { die("fork(1) failed!\n"); } elseif ($pid > 0) { //让由用户启动的进程退出 exit(0); } //建立一个有别于终端的新session以脱离终端 posix

linux 创建守护进程的相关知识

linux 创建守护进程的相关知识 http://www.114390.com/article/46410.htm linux 创建守护进程的相关知识,这篇文章主要介绍了linux 创建守护进程的相关知识,需要的朋友可以参考下 关键字:linux.守护进程 创建子进程,父进程退出 这是编写守护进程的第一步.由于守护进程是脱离控制终端的,因此,完成第一步后就会在Shell终端里造成一程序已经运行完毕的假象.之后的所有工作都在子进程中完成,而用户在Shell终端里则可以执行其他命令,从而在形式上做到

经典C/S服务器模型之守护进程

linux编程-守护进程编写 守护进程(Daemon)是运行在后台的一种特殊进程.它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件.守护进程是一种很有用的进程. Linux的大多数服务器就是用守护进程实现的.比如,Internet服务器inetd,Web服务器httpd等.同时,守护进程完成许多系统任务.比如,作业规划进程crond,打印进程lpd等. 守护进程的编程本身并不复杂,复杂的是各种版本的Unix的实现机制不尽相同,造成不同 Unix环境下守护进程的编程规则并不一致.