2014-04-25 22 views
5

Chcę móc zatrzymać/uruchomić demona (na Debianie), klikając przycisk na stronie internetowej. Wiem, że demon działa, ponieważ przez SSH zaczyna się i kończy. Mogę nawet uchwycić stan zUruchom demona z php

$status = exec("/etc/init.d/MyService.sh status | grep 'is running'"); 

ale to nie działa:

exec('/etc/init.d/MyService.sh start', $output); 

Nie otrzymuję ten błąd: Uruchamianie systemu MyService demona: failed! Chyba ma to związek z uprawnieniami, ale nie wiem jak. Uprawnienia pliku .pid to -rwxrw-rw-

Przeczytałem ten numer https://stackoverflow.com/a/6720364/3486924 i ten Starting a daemon from PHP, ale oba nie pomogły.

Wszelkie pomysły?

Dzięki

+0

-rwxrw-rw- oznacza tylko właściciel może uruchomić plik .. jesteś pewien PHP działa jako posiadanie użytkownik? Możesz zrobić "chmod + x" i spróbować ponownie –

+0

Używając fcgi, po prostu zmień właściciela skryptu na taki, który ma być uruchamiany. – DanFromGermany

+0

Teraz zmieniono to na -rwxr-xr-x. Wciąż nie ma sukcesu. – matzr

Odpowiedz

1

Witamy w SO.

Nie jest to pewne, ale można się domyślić, że twój php działa pod innym użytkownikiem niż twój ssh. Ten, którego używasz na ssh ma pewne prawa, ten, pod którym php działa, ma inne.

Można:

  1. Zmień użytkownika php być taka sama z ssh jeden

  2. Zmień swoje uprawnienia do plików, aby coś jak 777 (jeżeli bezpieczeństwo nie jest problemem)

  3. exec ('sudo /etc/init.d/MyService.sh start', $ output); - jeśli masz sudo

  4. zmienić właściciela pliku (chmod)

+0

Prawdopodobnie głupie pytanie, ale jak mogę się dowiedzieć, kim jest użytkownik php? Czy to ten, pod którym działa Apache? – matzr

+0

Tak, masz rację. – zozo

+0

Czy to możliwe, że problem uprawnień znajduje się w pliku PID? Próbowałem wszystkich (chmod + x, chown) w pliku skryptu w etc/init.d /, ale nie w pliku PID, ponieważ nie jest trwałe. – matzr