использование> / dev / null выводит неоднозначное число на консоль - PullRequest
0 голосов
/ 11 июля 2019

Поэтому мне нужно запустить фоновый процесс через командную строку (используя exec), а также передать параметры в исполняемый скрипт PHP .

Прежде чем продолжить, я покажу свой сценарий, чтобы лучше понять, что происходит:

var_dump($argv);
exit;

Чтобы получить параметры, которые нужно передать, было просто, все, что требовалось, было:

$ php -q test.php foo bar

Это, как и ожидалось, выдаст:

array(2){
    [0] => string(11) "test.php"
    [1] => string(3) "foo"
    [2] => string(3) "bar"
}

Однако, чтобы запустить скрипт асинхронно, мне нужна была следующая команда:

$ php -q test.php foo bar >/dev/null 2>/dev/null &

Но по какой-то причине он выдает произвольное число, подобное этому, каждый раз, когда я выполняю команду:

[1] 79401

Я искал решение, но ничего не могу найти по данному вопросу.

Вся помощь приветствуется.

Ответы [ 2 ]

2 голосов
/ 11 июля 2019

Как сказал Дэнлор, это идентификатор процесса скрипта PHP. Использование '&' в конце команды означает, что оболочка должна выполнять команду в фоновом режиме, поэтому оболочки сообщают вам PID процесса. Вы также подавляете любой вывод в stdout и stderr, используя "> / dev / null" и "2> /dev/null".

0 голосов
/ 11 июля 2019

Вы можете отправить команду в фоновый режим, а затем отправить вывод в / dev / null

/ bin / bash -c "php -q test.php foo bar &" 2> & 1> / dev / null

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...