Linux后台执行脚本的方式:

0、脚本代码

[root@VM_1_3_centos apps]# cat test.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结合就代表标准输出了,就变成错误重定向到标准输出.

以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要PHP进阶架构师>>>视频、面试文档免费获取​docs.qq.com2547dabdcd1101902b4b00ccf2d41dbb.png

或者关注咱们下面的专栏PHP架构师之路​zhuanlan.zhihu.coma11822d46d53b2a3302bf0c9e4f70dd7.png

来源:https://www.cnblogs.com/deverz/p/11040743.html

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐