Я должен выполнить этот скрипт с помощью PHP. Пользователь www-data не может этого сделать, поэтому я изменил файл sudoers:
www-data ALL=(user2) NOPASSWD: /home/user2/bin/test.sh
Скрипт выполняется в php с помощью этой команды:
sudo -u user2 /home/user2/bin/test.sh
Вот сценарий test.sh:
#!/bin/bash
#Stopping previous server
screen -S minecraft -X stuff "stop^M"
#deleting the map file
rm -Rf /home/minecraft/Serveur/*/
# deleting the properties file
rm -f /home/minecraft/Serveur/server.properties
#new server properties
cp /home/minecraft/MapsEtServ.prop/Bloody/server.properties /home/minecraft/Serveur/server.properties
#new map
cp -R /home/minecraft/MapsEtServ.prop/Bloody/'Bloody Mess v1.0' /home/minecraft/Serveur/'Bloody Mess v1.0'
#launching the game server
screen -dmS minecraft java -Xmx4096M -Xms4096M -jar /home/minecraft/Serveur/minecraft_server.jar nogui
/home/minecraft/Serveur и /home/minecraft/MapsEtServ.prop установлены на 777.
Что происходит, когда я запускаю скрипт через SSH: все работает нормально .
Но когда я выполняю его с php: экран остановлен, файлы вставляются и экран запускается. Но есть проблема: игровой сервер не работает.
EDIT: проблема решена! Я только что добавил cd / home / minecraft / Serveur / в начале скрипта, и все работает отлично:)