Linux添加后台自启动任务

目录

后台任务

&符号的使用

 重定向

标准输出 

标准错误 

 x>&y

创建后台任务

开机任务自启动


后台任务

&符号的使用

如果想让程序在后台运行,执行程序的时候,命令的最后面加“&”符号。

例如:ping指令,会一直返回数据包并在终端显示,按CTRL+c就会停止进程

但是加上&的话,进程会在后台进行,不受当前终端下CTRL+c的控制 

ping www.baidu.com &

需要注意的是:

加上&符号的进程在开始执行时会在终端显示该进程的进程PID,方便用户在不用CTRL+c的情况下去杀死该进程

还有,虽然进程会在后台执行,但是如果该进程有输出信息时仍然会在终端上显示 

那如何实现让进程在后台执行并且不影响到终端的显示信息? 

可以将该进程的终端输出信息重定向到没用的文件里或者文件黑洞中(/etc/null)

 重定向

Linux下的三个标准文件描述符(Linux下每个被打开的文件都有一个不会重复的文件描述符,就像每个正在运行的进程都有属于自己的PID一样)

0 - stdin                #标准输入流

1 - stdout                #标准输出流

2 - stderr                #标准错误流

标准输出 

使用 1 >代表标准输出,一般直接用简写>代替
$ ls > log          # 将ls输出的文本流导入一个文件中


$ ls >>log            #  将ls输出的文本流导入一个文件中


注意: > 和 >> 在output.log不存在时,两者相同,都是新建log并将文本流导入。如果log存在时,使用 >> 会将文本添加在结尾。使用 > 会覆盖该文件里的所有内容。

标准错误 

使用2 >代表标准错误。

$ rm file 2> log     # 将错误提示输出到error.log文件中

$ ls 1>output.log 2>error.log        

# 将标准输出流导入文件output.log,将标准错误输出到error.log
  
注意:1> 中间不能有空格

 x>&y

x和y分别表示标准流

2>&1        #将标错误重定向给标准输出

#将标错误和标准输出同时打印到log文件里

ls /home /www >log 2>&1

#也可以用&>

$ ls &>error.log  

标准输入这里先不讲,暂时用不到

创建后台任务

既然后台任务的终端显示的问题都解决了,两者结合就可以创建出我们想要的后台任务了

例如:ping的后台任务

ping www.baidu.com >log &

将ping任务在后台运行,并将输出打印到log文件里,终端只会显示一下进程的后台PID,使用kill杀死进程后会有死亡提示

 

再看一下log内的内容 

开机任务自启动

Linux在加载完各项开机启动文件后会执行/etc/rc.local这个脚本文件

将要启动的进程指令加入到该脚本下即可

在Linux开机后执行ping的这个进程,并作为后台进程将标准输出和错误信息扔进黑洞里

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想和我重名?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值