Вызвать и запустить php-скрипт из сценария оболочки

Просто нажмите Ctrl + Alt + F1 на клавиатуре, чтобы открыть TTY1. Когда он откроется, запустите команду Kill. Пример ниже.

сначала вы используете: ps это покажет вам все процессы, выполняемые («ps | less», если вы хотите просмотреть результаты по страницам). Затем вы ищете PID процесса, который вы хотите прекратить. После этого используйте: kill pid

kill command - остановить процесс от запуска. Синтаксис: kill [-s sigspec] [-n signum] [-sigspec] jobspec или pid kill -l [exit_status] Описание: Most современные снаряды, включая Bash, имеют встроенную функцию kill. В Bash оба имени и номера сигналов принимаются как параметры, а аргументами могут быть идентификаторы задания или процесса. О состоянии выхода можно сообщить с помощью опции -l: ноль, когда хотя бы один сигнал был успешно отправлен, ноль, если произошла ошибка. Используя команду kill из / usr / bin, ваша система может включать дополнительные параметры, такие как возможность убивать процессы, отличные от вашего собственного идентификатора пользователя, и определять процессы по имени, например, с помощью pgrep и pkill. Обе команды kill посылают сигнал TERM, если ни один не указан.

Источник: http://www.linuxforums.org/forum/newbie/53976-end-tasks-linux-like-task-manager-windows.html

Источник: http://www.linuxforums.org/forum/newbie/53976-end-tasks-linux-like-task-manager-windows.html

1
задан 20 October 2016 в 09:13

2 ответа

Хорошо работает для меня, Пример:

$ ls -l

-rwxrwxr-x 1 bg bg 67 Oct 20 09:42 index.php
-rwxrwxr-x 1 bg bg 68 Oct 20 09:43 test.sh

$ ls -l

<?php
    shell_exec('echo Hello > /tmp/hello.txt');
?>

test.sh

#!/bin/bash
/usr/bin/php index.php

Я думаю, что проблема в вашем коде - это строка:

. "${CONFIG}${i}/test.php"  

Удалите .

4
ответ дан 23 May 2018 в 05:00
  • 1
    Может быть, из-за разных пользователей? -rwxrwxr-x 1 root root 382 Oct 20 09:46 test.sh и -rwxr-xr-x 1 root www-data 25 Aug 19 09:15 test.php? – S.I. 20 October 2016 в 09:56
  • 2
    Я уже пробовал, и результат /test.sh: line 8: /usr/bin/php /var/www/html/site/test.php: No such file or directory – S.I. 20 October 2016 в 10:03
  • 3
    с #! / bin / sh - & gt; ./test.sh: строка 8: / usr / bin / php /path/to/my/site/dir/test.php: не найден – S.I. 20 October 2016 в 10:22
  • 4
    Убедитесь, что вы установили /path/to/my/site/dir/ на свой правильный правильный путь – Benny 20 October 2016 в 10:25
  • 5
    Я уверен, что это правильно $ pwd -> /var/www/html/site – S.I. 20 October 2016 в 10:32

Обычно команда php используется для интерпретации PHP-скриптов в оболочке.

$ php /path/script-name.php

Я сделал простой test.sh, и он работает:

$ cat ./text.sh
#!/bin/bash
sudo php /var/www/wiki/maintenance/update.php

$ chmod +x ./test.sh
$ ./test.sh

Он работает .

После этого я сделал сложный сценарий в качестве вашего примера:

$ cat ./text.sh

#!/bin/sh

LIST=/var/www/wiki/maintenance
CONFIG=/usr/bin/php

for i in $LIST
do
    ${CONFIG} ${i}/update.php
done

$ sudo ./test.sh

Он работает!

$ cat ./text.sh

#!/bin/sh

LIST="/var/www/wiki/maintenance"
CONFIG="/usr/bin/php "

for i in $LIST
do
    ${CONFIG}${i}/update.php
done

$ sudo ./test.sh

Работает также!

2
ответ дан 23 May 2018 в 05:00
  • 1
    тот же ./test.sh: 8: .: Can't open php /path/to/my/site/dir/test.php – S.I. 20 October 2016 в 09:11
  • 2
    Когда я запускаю $ php /path/script-name.php непосредственно в терминале, он работает. Но из сценария оболочки не работает – S.I. 20 October 2016 в 09:19
  • 3
    Попробуйте запустить его как скрипт bash #!/bin/bash? – pa4080 20 October 2016 в 09:21
  • 4
    Вы имеете в виду #!/bin/bash php /path/to/test.php? – S.I. 20 October 2016 в 09:24
  • 5
    Я хочу положить его в первую строку скрипта вместо #!/bin/sh. Эта строка указывает оболочку, которая будет интерпретировать сценарий. – pa4080 20 October 2016 в 09:44

Другие вопросы по тегам:

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