Polecenie terminalowe uruchamiane w php

0

Witam,

echo "111111111";

     echo `cd /var/www/html/jj/plik ; java -cp ".:Java-WebSocket-1.5.1.jar:json-20201115.jar:logback-classic-1.1.3.jar:logback-core-1.1.3.jar:slf4j-api-1.7.7.jar:slf4j-simple-1.8.0-beta4.jar:bin/" -Dfile.encoding=UTF-8  webSocks.Main`;

    echo "222222222"; //to juz sie nie uruchomi

W powyższym przykładzie uruchamiam w php polecenie konsolowe, przechodzę do danego katalogu i uruchamiam plik java. Plik javy uruchomi się poprawnie, tylko po tym uruchomieniu program już dalej nie idzie, wszystko co poniżej się nie uruchamia, jak to poprawić?

2

PHP czeka aż proces zakończy działanie - jeśli skrypt ma się odpalić w tle, spróbuj na koniec dorzucić ampersand, w stylu:

echo `something &`;

(https://stackoverflow.com/questions/7657846/executing-a-shell-script-in-background-with-php)

0
Patryk27 napisał(a):

PHP czeka aż proces zakończy działanie - jeśli skrypt ma się odpalić w tle, spróbuj na koniec dorzucić ampersand, w stylu:

echo `something &`;

(https://stackoverflow.com/questions/7657846/executing-a-shell-script-in-background-with-php)

Dopisałem something & na końcu ale bez zmian,

$Command = "cd /var/www/html/jj/plik ; java -cp ".:Java-WebSocket-1.5.1.jar:json-20201115.jar:logback-classic-1.1.3.jar:logback-core-1.1.3.jar:slf4j-api-1.7.7.jar:slf4j-simple-1.8.0-beta4.jar:bin/" -Dfile.encoding=UTF-8  webSocks.Main &";
    

    $str = shell_exec($Command.' 2>&1 > out.log');

Podmieniłem swoje na przykładzie z linków i wywala PHP Parse error: syntax error, unexpected ':'

0

@Xarviel: poprawiłem składnie, ale dalej czeka, nie uruchamia się w tle....

    $Command = `cd /var/www/html/jj/plik ; java -cp ".:Java-WebSocket-1.5.1.jar:json-20201115.jar:logback-classic-1.1.3.jar:logback-core-1.1.3.jar:slf4j-api-1.7.7.jar:slf4j-simple-1.8.0-beta4.jar:bin/" -Dfile.encoding=UTF-8  webSocks.Main &`;
    
    $str = shell_exec($Command.' 2>&1 > out.log');
0
Patryk27 napisał(a):

PHP czeka aż proces zakończy działanie - jeśli skrypt ma się odpalić w tle, spróbuj na koniec dorzucić ampersand, w stylu:

echo `something &`;

(https://stackoverflow.com/questions/7657846/executing-a-shell-script-in-background-with-php)

Jak uruchomię to bezpośrednio w konsoli to działa w tle:

cd /var/www/html/jj/plik ; java -cp ".:Java-WebSocket-1.5.1.jar:json-20201115.jar:logback-classic-1.1.3.jar:logback-core-1.1.3.jar:slf4j-api-1.7.7.jar:slf4j-simple-1.8.0-beta4.jar:bin/" -Dfile.encoding=UTF-8  webSocks.Main &

Ale jak dodam to do php to już się nie ruchomi w tle tylko czeka:

Command = `cd /var/www/html/jj/plik ; java -cp ".:Java-WebSocket-1.5.1.jar:json-20201115.jar:logback-classic-1.1.3.jar:logback-core-1.1.3.jar:slf4j-api-1.7.7.jar:slf4j-simple-1.8.0-beta4.jar:bin/" -Dfile.encoding=UTF-8  webSocks.Main &`;

$str = shell_exec($Command.' 2>&1 > out.log');

Da się w ogóle w php tak zrobić, żeby takie coś w tle uruchomić?

1 użytkowników online, w tym zalogowanych: 0, gości: 1