Linux后台执行脚本 &与nohup
Linux后台执行脚本的方式:
0、脚本代码
[root@VM_1_3_centos apps]# cat test.php
<?php
sleep(5);
echo "hello world!\n";
1、& 符号
当在前台运行某个作业时,终端被该作业占据;可以在命令后面加上& 实现后台运行。
示例1、
[root@VM_1_3_centos apps]# php test.php &
[1] 28376 //进程ID
[root@VM_1_3_centos apps]# jobs
[1]+ Running php test.php &
//5s后,脚本内容输出到控制台上
[root@VM_1_3_centos apps]# hello world! [1]+ Done php test.php
[root@VM_1_3_centos apps]#
以上方式在命令产生输出时,会将脚本输出内容显示在控制台上,可能会影响控制台的操作。
示例2、结果输出到指定文件
[root@VM_1_3_centos apps]# php test.php >out.txt 2>&1 &
[1] 29637
[root@VM_1_3_centos apps]# jobs
[1]+ Running php test.php > out.txt 2>&1 &
//当脚本执行完毕后,Enter控制台,就会输出Done脚本进程
[root@VM_1_3_centos apps]#
[1]+ Done php test.php > out.txt 2>&1
[root@VM_1_3_centos apps]#
此时所有的标准输出和错误输出都将被重定向到out.txt文件中。
2、nohup
使用&命令时,关闭当前控制台窗口或退出当前帐户时,作业就会停止运行。
nohup命令则可以在退出帐户或关闭窗口后继续运行进程。
nohup即no hang up[不挂起]。
示例1、
[root@VM_1_3_centos apps]# nohup php test.php &
[1] 1013
[root@VM_1_3_centos apps]# nohup: ignoring input and appending output to `nohup.out' [root@VM_1_3_centos apps]# jobs
[1]+ Running nohup php test.php &
[root@VM_1_3_centos apps]# vim nohup.out
默认情况下,nohup的进程脚本输出会被重定向到nohup.out的文件中。
示例2、结果输出到指定文件
[root@VM_1_3_centos apps]# nohup php test.php >out.txt 2>&1 &
[1] 3550
[root@VM_1_3_centos apps]# jobs
[1]+ Running nohup php test.php > out.txt 2>&1 &
[root@VM_1_3_centos apps]#
此时所有的标准输出和错误输出都将被重定向到out.txt文件中。
许多人使用了nohup之后,就不再管了,其实这样有可能在当前账户非正常退出或者结束的时候,命令还是自己结束了。
所以在使用nohup命令后台运行命令之后,需要使用exit正常退出当前账户,这样才能保证命令一直在后台运行。
Note:解析以下命令
php test.php >out.txt 2>&1 &
php test.php >out.txt 表示将脚本的标准输出重定向到 out.txt 文件,不打印在屏幕上。
2>&1 表示将标准出错重定向到标准输出,由于我们的标准输出已经重定向到了 out.txt 文件,所以标准出错也会输出到 out.txt 文件中。
最后一个 & 符号, 是让该命令在后台执行。
那么2>1呢?
2 与 > 结合代表错误重定向,而 1 则代表错误重定向到一个文件1,而不代表标准输出;
换成2>&1,&与1结合就代表标准输出了,就变成错误重定向到标准输出.
Linux后台执行脚本 &与nohup的更多相关文章
- Linux后台执行脚本文件,nohup
看运维人员执行nohup命令后,把程序放在后台执行,很高大上,就研究了一下,这个命令. nohup命令及其输出文件 nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么 ...
- 在linux后台执行脚本
1. 使用&符号在后台执行命令 你可以在Linux命令或者脚本后面增加&符号,从而使命令或脚本在后台执行,例如:. $ ./my-shell-script.sh & 2. 使用 ...
- Linux后台执行命令:&和nohup nohup和&后台运行,进程查看及终止
nohup和&后台运行,进程查看及终止 阅读目录 nohup和&后台运行,进程查看及终止 1.nohup 2.& 3.nohup和&的区别 &:是指在后台运 ...
- linux-ssh远程后台执行脚本-放置后台执行问题(转)
写了一个监控负载的小脚本(死循环,测试结束后再kill对应进程),因需要监控多台服务器,所以在一台服务器上使用ssh统一执行脚本遇到问题:使用ssh root@172.16.146.20 '/usr/ ...
- Linux后台执行的方法 - 关闭、退出不影响
=============================================================================================nohup c ...
- 使用php作linux自动执行脚本
使用php作linux自动执行脚本 [来源] 达内 [编辑] 达内 [时间]2013-03-21 在作社区时, 时常需要统计上线人数等数据. 一般做法是, 把这段代码放在用户 login或者 ...
- linux后台执行命令:&和nohup
当我们在终端或控制台工作时,可能不希望由于运行一个作业而占住了屏幕,因为可能还有更重要的事情要做,比如阅读电子邮件.对于密集访问磁盘的进程,我们更希望它能够在每天的非负荷高峰时间段运行(例如凌晨).为 ...
- 【liunx】linux后台执行命令:&和nohup
当我们在终端或控制台工作时,可能不希望由于运行一个作业而占住了屏幕,因为可能还有更重要的事情要做,比如阅读电子邮件.对于密集访问磁盘的进程,我们更希望它能够在每天的非负荷高峰时间段运行(例如凌晨).为 ...
- Linux后台执行
在Linux中有时你须要将脚本(test.sh)和可运行程序(exe)后台运行,请使用例如以下方式: nohup ./test.sh & nohup ./exe & 这样执行的程序能够 ...
随机推荐
- input复制文本
input.value = this.$t('title') document.body.appendChild(input) input.select() input.setSelectionRan ...
- MySQL-第八篇MySQL内置函数
1.根据函数对多行数据的处理方式,可以分为: 1>单行函数:对每行输入值进行单独计算,每行得到一个计算结果返回给用户. 2>多行函数:聚集函数.分组函数,主要用于完成一些统计功能.对多行 ...
- spring-第二篇ApplicationContext国际化及事件机制
1.ApplicationContext接口获取spring容器 ApplicationContext是BeanFactory接口的子接口,BeanFactory的常用实现类是Default ...
- Day6----Python的pyinstall库的使用
Python的pyinstaller库 pyinstaller的安装 介绍:pyinstaller是Python的第三方库,主要用于将Python代码打包成 可执行文件 ,以此达到就算没安装P ...
- Codeforces Round #521 (Div. 3) E. Thematic Contests(思维)
Codeforces Round #521 (Div. 3) E. Thematic Contests 题目传送门 题意: 现在有n个题目,每种题目有自己的类型要举办一次考试,考试的原则是每天只有一 ...
- 专题:性能调优之工具---perf
1. Linux Perf简介 1.1 Perf是什么 Perf 是内置于Linux 内核源码树中的性能剖析(profiling)工具.它基于事件采样原理,以性能事件为基础,支持针对处理器相关性能指标 ...
- 图解git中的最常用命令
图解git中的最常用命令 Git命令参考手册(文本版) git init # 初始化本地git仓库(创 ...
- 【学习总结】GirlsInAI ML-diary day-20-初识 Kaggle
[学习总结]GirlsInAI ML-diary 总 原博github链接-day20 初识kaggle 1-注册一个账号(由于被谷歌收购,因此可能需要梯子) 2-Competition - 学会看一 ...
- 完善Hikari连接池扩展项目HikariApi(ORM)
以前介绍类自定义的Hikari项目,定位于数据库连接池:后扩展了,根据文件名称,以数据库配置文件为基础,支持按照名称多数据操作. 在使用中,发现扩展了SQL语句参数化操作,在管理类中,以扩展方法存在. ...
- 手模手配置Eslint,看懂脚手架中的Eslint
使用ESLint前:eslint是干嘛的,我这样写有什么问题,怎么还报错了,太麻烦想去掉这个插件,脚手架中关于eslint文件里的配置是什么意思?怎么设置配置项和规则达到自己想要的检测效果呢?怎么集成 ...