systemd customd service: Falha no passo EXEC desova… Permissão negada

0

Estou recebendo este erro ao tentar iniciar um serviço systemd personalizado.

netrender-slave.service: Failed at step EXEC spawning /usr/local/bin/netrender-slave.sh: Permission denied

Aqui está o /etc/systemd/system/netrender-slave.service

[Unit]
Description=Blender netrender slave manager

[Service]
ExecStart=/usr/local/bin/netrender-slave.sh start  
ExecStop=/usr/local/bin/netrender-slave.sh stop
ExecReload=/usr/local/bin/netrender-slave.sh reload 
Type=simple

[Install]
WantedBy=multi-user.target

Em esta questão , o problema foi permissões no script, mas netrender-slave.sh parece ok:

~# ls -al /usr/local/bin
total 16
drwxr-xr-x  2 root root 4096 Dec  4 11:30 .
drwxr-xr-x 10 root root 4096 Apr 20  2016 ..
-rwxr-xr-x  1 root root  816 Dec  4 11:30 netrender-slave.sh

Em esta questão o problema era privilégios insuficientes em um dos diretórios, mas todos os /usr/local/bin parecem semelhantes a este:

drwxr-xr-x  2 root root 4096 Dec  4 11:30 .
drwxr-xr-x 10 root root 4096 Apr 20  2016 ..
...

No entanto, nos comentários dessa mesma pergunta, isso é oferecido:

the ls output did not show a trailing . after the UGO permissions drwxr-xr-x - GNU ls uses a . character to indicate a file with an SELinux security context, but no other alternate access method. A file with any other combination of alternate access methods is marked with a + character.

Eu não entendo como verificar se isso é problema meu.

    
por 43Tesseracts 05.12.2017 / 01:34

1 resposta

3

Esta é uma maneira ruim de fazer isso, digna da casa do sistema. Você pode pensar que seu único problema é a falta de um interpretador no arquivo de script. Não é. Seu problema maior, que você não está vendo, é o encapsulamento de um script van Smoorenburg rc , completo com o gerenciamento de serviços totalmente desnecessário do Poor Man, dentro de uma unidade de serviço. Isso acaba com o processo errado como o daemon e não gerencia as coisas apropriadamente.

Não faça nada assim .

Você deve informar a seus desenvolvedores que a opção -b está documentada de forma confusa.

[Unit]
Description=Blender netrender slave manager
Documentation=https://unix.stackexchange.com/a/408848/5132

[Service]
Type=simple
WorkingDirectory=/mnt/my-data
User=ec2-user
Environment=FLAGS="simple_slave_eiptarget.blend --addons netrender -a -noaudio -nojoystick"
ExecStart=/mnt/my-data/blender-2.73a-linux-glibc211-x86_64/blender -b $FLAGS --enable-autoexec

[Install]
WantedBy=multi-user.target

Leitura adicional

por 05.12.2017 / 02:46