php 执行artisan,【Python】python脚本执行laravel的php artisan命令

laravel执行下面php artisan命令的时候,有一个确认步骤:

[[email protected] ~]# php artisan key:generate

**************************************

* Application In Production! *

**************************************

Do you really wish to run this command? (yes/no) [no]:

> yes

现在用python脚本来自动化执行上面这个命令:

脚本auto.py

#!/usr/bin/python3

import os

#重新生成key

def regenerate_key():

os.system('cd /var/www/laravel_blog && php artisan key:generate')

if __name__ == "__main__":

regenerate_key()

执行上面的脚本:

[[email protected] ~]# python3 auto.py

问题:

执行脚本和直接输入命令一样,会要求确认。怎么让这个脚本自动确认,而不用手动再输yes?

回答

一种是使用自身的–no-interaction选项;

另一种是使用进程间通信,向php进程的标准输入写入”yes”,比如:

import subprocess

p = subprocess.Popen(['php', 'artisan key:generate'], stdin=subprocess.PIPE)

p.stdin.write('yes')

p.stdin.flush()

还有一种简单的方法,yes命令会不断输入yes,直到命令结束:

[[email protected]]# yes yes | php artisan key:generate

5ba5c091aeea92479960252bececd24d.png

这个确认步骤如何实现的?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值