如何理解计划任务中的这一行代码?

* * * * * php /home/vagrant/Code/larabbs/artisan schedule:run >> /dev/null 2>&1
* * * * * php /home/vagrant/Code/larabbs/artisan

可以理解为指定了一个地址?

schedule:run

执行这个方法?

 /dev/null 2>&1

那么这个呢?是什么意思呢?

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

/dev/null 2>&1 分為兩部分

  1. /dev/null 是系統黑洞,也就是 >> 之前執行的輸出訊息全部丟進這個垃圾桶裡
  2. 在標準輸出中,stdin 是 0,stdout 是 1,stderr 是 2,所以他將 stderr 全部導到 stdout,stdout 又被導回 /dev/null,也就是不輸出

所以兩段加起來的結果就是 crontab 的執行不會有任何輸出
若要實際理解可執行以下指令

php artisan schedule:run >> /home/user/output.txt

應該就可在 output.txt 中看到 cron 執行結果

6年前 评论
讨论数量: 6

/dev/null 2>&1 分為兩部分

  1. /dev/null 是系統黑洞,也就是 >> 之前執行的輸出訊息全部丟進這個垃圾桶裡
  2. 在標準輸出中,stdin 是 0,stdout 是 1,stderr 是 2,所以他將 stderr 全部導到 stdout,stdout 又被導回 /dev/null,也就是不輸出

所以兩段加起來的結果就是 crontab 的執行不會有任何輸出
若要實際理解可執行以下指令

php artisan schedule:run >> /home/user/output.txt

應該就可在 output.txt 中看到 cron 執行結果

6年前 评论

>> 表示追加内容。

> 表示覆盖内容。

/dev/null 的意思是空设备。

1 表示 stdout 标准输出,系统默认就是它,所以 >> file.txt1>>file.txt 相等。

2 表示 stderr 标准错误

2>&1 表示将所有错误覆盖到标准输出。

* * * * * php /home/vagrant/Code/larabbs/artisan schedule:run >> /dev/null 2>&1 的意思就是执行 schedule:run 命令,然后将它所有的输出包括错误输出导向空设备,也就是什么都不输出。

5年前 评论

输入的信息全部扔掉。不过调试时最好输出到一个文件

6年前 评论

@xuanjiang1985 没有理解,是什么意思?

6年前 评论

/dev/null 2>&1 分為兩部分

  1. /dev/null 是系統黑洞,也就是 >> 之前執行的輸出訊息全部丟進這個垃圾桶裡
  2. 在標準輸出中,stdin 是 0,stdout 是 1,stderr 是 2,所以他將 stderr 全部導到 stdout,stdout 又被導回 /dev/null,也就是不輸出

所以兩段加起來的結果就是 crontab 的執行不會有任何輸出
若要實際理解可執行以下指令

php artisan schedule:run >> /home/user/output.txt

應該就可在 output.txt 中看到 cron 執行結果

6年前 评论

>> 表示追加内容。

> 表示覆盖内容。

/dev/null 的意思是空设备。

1 表示 stdout 标准输出,系统默认就是它,所以 >> file.txt1>>file.txt 相等。

2 表示 stderr 标准错误

2>&1 表示将所有错误覆盖到标准输出。

* * * * * php /home/vagrant/Code/larabbs/artisan schedule:run >> /dev/null 2>&1 的意思就是执行 schedule:run 命令,然后将它所有的输出包括错误输出导向空设备,也就是什么都不输出。

5年前 评论

@superSnail 前面的星号(*)是什么作用?

5年前 评论

@hehorange * 是 Linux crontab 任务中用来表示时间的字段,从左至右分别为分钟、小时、日、月、星期,分别有着各自的取值范围; * 表示任何时间,如果某个字段使用了 * ,则在满足其它字段制约的条件时,该字段的每个单位时间内都会执行一次该条任务;由于计划任务的执行频率是由框架控制的,所以此处所有的时间字段都被设置为了 *

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!