#!/bin/bash
cd /root/ventrilo
screen -AmdS vt ./ventrilo_srv
Gdy wywołam plik hello.sh przez konsolę to uruchamia normalnie proces. Natomiast gdy chcę zrobić to przez skrypt php nie idzie coś. Prawa dostępu dla pliku hello.sh ustawiłem na 755.
Takie wywołanie skryptu nie ma sensu, ponieważ dwie komendy shell_exec nie są mówiąc skrótowo wykonane w jednej sesji. Pierwsza polecenie zmieni folder na /bin, a drugie będzie uruchamiała hello.sh najpewniej z katalogu głównego / lub katalogu głównego witryny na której jest plik php. Najlepiej byłoby wykonać:
Ponadto do niektórych poleceń użytkownik apache'a (bo taki będzie uruchamiał skrypt - w debianie użytkownik www-data) nie ma dostępu. Możliwe, że będzie konieczność dodania użytkownika www-data do sudoers.
Zrobiłem wszystko to o czym mówiłeś, lecz nadal coś nie działa. Myślę, że to będzie przez to, że program ma działać w tle, czyli, po zakończeniu wykonania skryptu ma on działać dalej.
May 17 05:28:51 226 sudo: www-data : TTY=unknown ; PWD=/var/www/apache2-default ; USER=root ; COMMAND=/bin/hello.sh
May 17 05:29:01 226 CRON[29831]: (pam_unix) session opened for user root by (uid=0)
May 17 05:29:01 226 CRON[29831]: (pam_unix) session closed for user root