linux后台运行之&和nohup区别,模拟后台守护进程
先来看一下&的使用
root@BP:~# cat test.sh
#!/bin/bash
while true
do
echo "linux">/dev/null
done
root@BP:~# ./test.sh & #&后台运行
[1] 4599
root@BP:~# ps #test.sh运行中
PID TTY TIME CMD
4555 pts/1 00:00:00 bash
4599 pts/1 00:00:00 test.sh
4600 pts/1 00:00:00 ps
root@BP:~# exit
root@BP:~# ps #终端退出后程序也跟着退出了
PID TTY TIME CMD
4611 pts/2 00:00:00 bash
4617 pts/2 00:00:00 ps
root@BP:~#
再来看一下nohup,使用该命令会在当前目录下产生nohup.out文件,该文件类似日志文件,程序的输出直接记录到该文件,不过我这里直接/dev/null了,所以那个文件会是空的
根据下面的步骤执行,就不会出现nohup随着终端关闭而停止程序的情况了,特别是退出方式那里特别需要注意(这个是别人说的,经过我实验nohup ./test.sh &回车后直接点击关闭窗口也没有什么影响)
就我个人来说,我就是老是以为可以直接用ps查看到这个进程,导致我在这里卡了很久而已
root@BP:~# cat test.sh
#!/bin/bash
while true
do
echo "linux">/dev/null
done
root@BP:~# ps -aux|grep test.sh
root 5093 0.0 0.0 12720 932 pts/2 S+ 09:10 0:00 grep test.sh
root@BP:~# nohup ./test.sh &
[1] 5094
root@BP:~# nohup: ignoring input and appending output to 'nohup.out' #需要回车一下,继续执行下面命令
root@BP:~# ps #我一直在这里查看test.sh有没有运行其实是错误的
PID TTY TIME CMD
4716 pts/2 00:00:00 bash
5094 pts/2 00:00:21 test.sh
5096 pts/2 00:00:00 ps
root@BP:~# ps -aux|grep test.sh #应该这样子看才对
root 5094 98.8 0.0 11156 2716 pts/2 R 09:10 1:22 /bin/bash ./test.sh
root 5102 0.0 0.0 12720 940 pts/2 S+ 09:12 0:00 grep test.sh
root@BP:~# exit #需要以这种方式退出终端
#退出终端后,再重新开一个终端执行下面命令
root@BP:~# ps
PID TTY TIME CMD
5132 pts/1 00:00:00 bash
5138 pts/1 00:00:00 ps
root@BP:~# ps -aux|grep test.sh #可以看到程序并没有停止,注意5094是pid
root 5094 99.0 0.0 11156 2716 ? R 09:10 5:50 /bin/bash ./test.sh
root 5142 0.0 0.0 12720 944 pts/1 S+ 09:16 0:00 grep test.sh
root@BP:~#
扩展一下:怎么杀死这个后台进程
root@BP:~# kill -9 5094
root@BP:~# ps -aux|grep test.sh
root 5163 0.0 0.0 11116 936 pts/1 D+ 09:20 0:00 grep test.sh
linux后台运行之&和nohup区别,模拟后台守护进程的更多相关文章
- Linux执行shell脚本方式及区别&命令后台运行
Linux执行shell脚本方式及区别&命令后台运行 http://blog.csdn.net/heqiyu34/article/details/19089951/
- Linux后台运行命令,nohup和&的区别
&的意思是在后台运行, 什么意思呢? 意思是说, 当你在执行 ./a.out & 的时候, 即使你用ctrl C, 那么a.out照样运行(因为对SIGINT信号免疫). 但是要注 ...
- Linux 后台运行命令:nohup 和 &
[参开文章]:nohup 与 & 的区别 1. nohup 1.1 基本概念 将程序以忽略挂起信号的方式运行起来: 不可以免疫 Ctrl + C 的 SIGINT 中断信号: 可以免疫 SI ...
- linux后台运行python程序 nohup
nohup python -u test.py > out.log 2>&1 & nohup sh **.sh > /dev/null 2>&1 &am ...
- linux系统添加环境变量,node.js forever 守护进程添加环境变量
1.node.js 守护进程组件 forever 安装 npm install forever -g 安装完成后截图: 2.安装完成后在控制台输入 forever 出现 -bash: forever: ...
- Linux后台运行命令 nohup command > myout.file 2>&1
Linux命令后台运行 转自北国的雨,谢谢:http://www.cnblogs.com/lwm-1988/archive/2011/08/20/2147299.html 有两种方式:1. comma ...
- Linux后台执行命令:&和nohup nohup和&后台运行,进程查看及终止
nohup和&后台运行,进程查看及终止 阅读目录 nohup和&后台运行,进程查看及终止 1.nohup 2.& 3.nohup和&的区别 &:是指在后台运 ...
- linux nohup命令使程序在后台运行的方法
在linux操作系统中从后台一直运行某个程序的方法,就是使用nohup命令了. Unix/Linux下一般比如想让某个程序在后台运行,很多都是使用 & 在程序结尾来让程序自动运行. 比如要运行 ...
- 【Linux学习】nohup后台运行程序以及输出重定向
Linux有两种命令使程序后台运行 第一种:支持后台运行,但是关闭终端的话,程序也会停止 command & 第二种:支持后台运行,关闭终端后,程序也会继续运行 nohup command & ...
随机推荐
- set的三种遍历方式-----不能用for循环遍历(无序)
set的三种遍历方式,set遍历元素 list 遍历元素 http://blog.csdn.net/sunrainamazing/article/details/71577662 set遍历元素 ht ...
- Dell灵越 5559笔记本安装固态硬盘 BIOS设置
固态硬盘的安装这里就不详细说明了,安装一共有两种 直接把原有的磁盘卸了,换成SSD(这种方法最简单) 另一种是把光驱卸掉,然后换上SSD(这里建议把原来的磁盘换到光驱里面,把SSD加到原来磁盘安装的位 ...
- 一个简单的JSP程序示例
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"% ...
- spring有关jar包的作用
参考的是spring官网spring4.3版本. 链接:https://docs.spring.io/spring/docs/4.3.19.RELEASE/spring-framework-refer ...
- 实现html转png
公司要求将一些重要数据全部以图片的形式放在官网上,防止网络爬虫. 之前都是UI作图,人工上传,为了解放生产力,于是我们程序处理. 步骤: 1.html得到与原图一致的图片(交给前端处理) 2.html ...
- 使用 DirectX 创建 3D 图形
官方链接 https://msdn.microsoft.com/zh-cn/library/windows/desktop/hh465137.aspx 使用 Windows 运行时初始化 Dire ...
- 运用HTML5+CSS3和CSS滤镜做的精美的登录界面
原始出处http://chenjinfei.blog.51cto.com/2965201/774865 <!DOCTYPE HTML> <html> <head> ...
- mod_fcgid: HTTP request length 136136 (so far) exceeds MaxRequestLen (131072)
原来是fastcgi模式下的设置问题,需要在配置文件.htaccess或者直接在apache的配置文件http.conf 中指明,如下: 查看官方说明有这么一句:Default: FcgidMaxRe ...
- JAVA测试编程
本周我们上JAVA课的时候进行了一次测试,本次测试以模拟中国工商银行自助机ATM的功能为大致要求,要求我们进行编写调试,以求达到试题要求. 测试要求我们能模拟ATM的功能设计,当用户插卡后显示,输入密 ...
- Spring Batch 简介
Spring Batch是一个轻量级的,完全面向Spring的批处理框架,可以应用于企业级大量的数据处理系统.Spring Batch以POJO和大家熟知的Spring框架为基础,使开发者更容易的访问 ...