web-dev-qa-db-fra.com

L'écran a besoin du mode 777 avec le service systemd

J'essaie de configurer Minecraft pour qu'il s'exécute dans une session d'écran au démarrage. mais avec le fichier de service suivant, voici le statut de mon service.

Je suis novice dans l'utilisation de la méthode de démarrage Systemd. Toute aide serait la bienvenue.

minecraft.service - Minecraft Server
Loaded: loaded (/home/matt/minecraft.service; enabled; vendor preset: enabled)
Active: active (exited) since Fri 2016-12-16 14:17:59 GMT; 6min ago
Process: 15942 ExecStopPost=/usr/bin/screen -X -S Minecraft exit (code=exited, status=1/FAILURE)
Process: 15940 ExecStop=/var/minecraft/mcrcon -H localhost -P 8101 -p drwho stop (code=exited, status=255)
Process: 15990 ExecStart=/usr/bin/screen -X -S Minecraft /usr/bin/Java -Xmx1024M -Xms1024M -jar spigot.jar (code=exited, status=1/FAILURE)
Process: 15985 ExecStartPre=/usr/bin/screen -dmS Minecraft (code=exited, status=1/FAILURE)
Main PID: 15990 (code=exited, status=1/FAILURE)

Dec 16 14:17:59 TheCyberman systemd[1]: Starting Minecraft Server...
Dec 16 14:17:59 TheCyberman screen[15985]: Directory '/var/run/screen' must have mode 777.
Dec 16 14:17:59 TheCyberman systemd[1]: Started Minecraft Server.
Dec 16 14:17:59 TheCyberman screen[15990]: Directory '/var/run/screen' must have mode 777.

Ceci est mon fichier de service

[Unit]
Description=Minecraft Server
Documentation=

Wants=network.target
After=network.target

[Service]
User=minecraft
Group=minecraft
Nice=5
EnvironmentFile=-/var/minecraft/unit.conf
KillMode=none
SuccessExitStatus=0 1
RemainAfterExit=yes

ProtectHome=true
ProtectSystem=full
PrivateDevices=true
NoNewPrivileges=true
PrivateTmp=true
InaccessibleDirectories=/root /sys /srv -/opt /media -/lost+found
ReadWriteDirectories=/var/minecraft/server /usr/bin/screen
WorkingDirectory=/var/minecraft/server
ExecStartPre= /usr/bin/screen -dmS Minecraft 
ExecStart= /usr/bin/screen -X -S Minecraft '/usr/bin/Java -Xmx1024M -Xms1024M -jar spigot.jar'
ExecStop=/var/minecraft/mcrcon -H localhost -P 8101 -p drwho stop
ExecStopPost= /usr/bin/screen -X -S Minecraft 'exit'
ExecReload=/var/minecraft/mcrcon -H localhost -P 8101 -p drwho reload
Restart=on-failure

[Install]
WantedBy=multi-user.target
1
Mattyboi1670

Le répertoire nécessite des autorisations complètes pour lire, écrire et exécuter.

Vous pouvez faire cette commande chmod -R 777 /var/run/screen

Ce qui modifiera de manière récursive toutes les autorisations de dossiers/fichiers en 777, bien que généralement moins sécurisé.

Vous pouvez également exécuter Sudo chown -R $USER:$USER /var/run/screen

Cela permettra à un utilisateur/groupe typique d’obtenir un accès complet et sera plus sécurisé.

0
CeFu