<?php
# The maximum execution time, in seconds. If set to zero, no time limit is imposed.
set_time_limit(0);
# Make sure to keep alive the script when a client disconnect.
ignore_user_abort(true);
error_reporting(E_ALL);
ini_set('display_errors', 'On');
error_reporting(-1); // reports all errors
ini_set("display_errors", "1"); // shows all errors
ini_set("log_errors", 1);
ini_set("error_log", "/var/www/vhosts/abc.xy/httpdocs/websocket.log");
echo "Script start at: " . date('h:i:s') . "\n";
exec('bash -c "exec nohup php websocket_server.php >> /var/www/vhosts/abc.xy/httpdocs/websocket.log 2>&1 &"');
shell_exec('nohup php /var/www/vhosts/abc.xy/httpdocs/proj_ci/application/libraries/server/websocket_server.php 2>&1 >> /var/www/vhosts/abc.xy/httpdocs/websocket.log &');
echo "Script end at: " . date('h:i:s');
?>
Это сохранит все журналы по указанному пути, указанному /var/www/vhosts/abc.xy/httpdocs/websocket.log
Вышеуказанный скрипт работает нормально, если вы обращаетесь к указанному скрипту по имени из браузера. В случае перезапуска сервера вы сможете запланировать его в задании Cron
В случае сбоя метода exec()
на каком-либо хост-сервере shell_exec()
не будет работать, если он уже запущен в порту 8080