Как выполнить сценарий PHP через командную строку (и сохранить ее бегущий за тем, чтобы выходить из системы),

Ничего не происходит. Объект, на который ссылается переменная 'b', является отдельным объектом. Это в то же время экземпляр B и экземпляр A.

Когда вы выполняете присвоение a = b, объект, на который ранее ссылалась переменная «а», становится недоступным. Рассмотрение этого старого объекта не входит в это обсуждение.

После назначения «a» и «b» относятся к одному и тому же объекту. Объект неизменен. Это все еще экземпляр B и экземпляр A.

Возможно, блок в вашем понимании - это различие между объектами и переменными, которые относятся к этим объектам?

10
задан englebip 3 February 2012 в 18:15
поделиться

3 ответа

Я полагаю, что у Ben есть корректный ответ, а именно, используйте команду nohup. nohup обозначает nohangup и означает, что Ваша программа должна проигнорировать сигнал зависания, сгенерированный, когда Вы - сессия шпаклевки, разъединяется или Вами выходить из системы или потому что Вы были приведены к таймауту.

Необходимо знать, что вывод команды будет добавлен в файл в текущем каталоге, названном nohup.out (или $HOME/nohup.out, если полномочия будут препятствовать тому, чтобы Вы создали nohup.out в текущем каталоге). Если Ваша программа генерирует большой вывод затем, этот файл может стать очень большим, альтернативно можно использовать перенаправление оболочки для перенаправления вывода сценария в другой файл.

nohup php myscript.php >myscript.output 2>&1 &

Эта команда запустит Ваш скрипт и отправит весь вывод (и стандарт и ошибка) в файл myscript.output, который будет создан снова каждый раз, когда Вы запускаете программу.

Финал и причины сценарий для выполнения в фоновом режиме, таким образом, можно сделать другие вещи, пока он работает или выходит из системы.

17
ответ дан 3 December 2019 в 15:06
поделиться

Простой способ состоит в том, чтобы выполнить его хотя nohup:

nohup php myScript.php & 
9
ответ дан 3 December 2019 в 15:06
поделиться

Если Вы выполняете команду php в a screen, отсоединитесь screen, затем это не завершится при закрытии консоли.

Экран является оконечным мультиплексором, который позволяет Вам справляться со многими процессами через один физический терминал. Каждый процесс получает свое собственное виртуальное окно, и можно возвратиться между виртуальными окнами, взаимодействующими с каждым процессом. Процессы, организованные экраном, продолжают работать, когда их окно не активно.

4
ответ дан 3 December 2019 в 15:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: