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 & ...
随机推荐
- springMVC的工作流程图
- DRF的分页
DRF的分页 DRF的分页 为什么要使用分页 其实这个不说大家都知道,大家写项目的时候也是一定会用的, 我们数据库有几千万条数据,这些数据需要展示,我们不可能直接从数据库把数据全部读取出来, 这样 ...
- translclude
.transclude:true 启用transclude,启用以后,有两个地方会发生变化: ①.使用指令的元素内部的所有内容都会被保存起来.不妨先把这一段内容称为一坨. 比如指令元素是这样的: &l ...
- NAND Flash vs NOR Flash
Avinash Aravindan reference:https://www.embedded.com/design/prototyping-and-development/4460910/2/Fl ...
- byte[]->new String(byte[]) -> getByte()引发的不一致问题
今天接短信接口,短信接口提供了sdk,我们可以直接用sdk发送请求然后发送对应短信. 但是想使用我们平台自定义的httpUtil实现. 然而忙了1天半,才解决这个问题,还是我同事帮忙找出问题并解决的. ...
- Linux文件系统命令 mv
命令名:mv 功能:移动一个文件,从一个位置到另外一个位置. 用法:mv source_dir dist_dir eg: renjg@renjg-HP-Compaq-Pro--MT:/var/tmp$ ...
- 组队项目——黄金点(叶雨&王浩)
代码来源:自己编写 运行环境:win10 编译软件:VC++6.0 使用语言:C语言 功能:可多次运行,由用户决定退出与否,可以记录玩家的姓名与分数并显示. BUG:暂未发现 GitHub地址:htt ...
- 很Low的三级菜单程序
# -*-coding:utf-8-*- # Author:sunhao province={ '广东省':{ '深圳市':['南山区','龙岗区','福田区'], '广州市':['荔湾区','海珠区 ...
- Beta阶段冲刺---Day3
一.Daily Scrum Meeting照片 二.今天冲刺情况反馈 昨天已完成的工作: (1)数字以扑克牌的形式给出 (2)答案的乘除符号与游戏中的符号保持一致. 今天计划完成的工作 (1)闯关模式 ...
- MYSQL锁表问题解决
本文实例讲述了MYSQL锁表问题的解决方法.分享给大家供大家参考,具体如下: 很多时候!一不小心就锁表!这里讲解决锁表终极方法! 案例一 ? 1 mysql>show processlist; ...