Erro ao executar um script python3 na inicialização

1

Estou tentando executar um script python (/home/user/Desktop/file.py) na inicialização fazendo um script bash (/etc/init.d/file.bash) que executa o script python

#!/bin/bash

case "$1" in
  start)
    echo "Starting"
    /home/user/Desktop/file.py
    ;;
  stop)
    echo "Stopping"
    killall python3.5
    ;;
  *)
    echo "Usage: service file.bash{start|stop}"
    exit 1
    ;;
esac
exit 0

e fiz um link simbólico de file.bash e o coloquei em /etc/rc5.d/S{NN}file.bash mas, por alguma razão, quando o serviço é iniciado, recebo um erro

● file.service
   Loaded: loaded (/etc/init.d/file.bash; bad; vendor preset: enabled)
   Active: active (exited) since Mon 2017-12-11 14:49:45 EET; 29min ago
     Docs: man:systemd-sysv-generator(8)
   Process: 1285 ExecStart=/etc/init.d/file.bash start (code=exited, status=0/SUCCESS)

Dec 11 14:49:45 ****-PC file.bash[1285]:     protocol_display.Display.__init__(self, *args, **keys)
Dec 11 14:49:45 ****-PC file.bash[1285]:   File "/usr/local/lib/python3.5/dist-packages/Xlib/protocol/display.py", line 85, in __init__
Dec 11 14:49:45 ****-PC file.bash[1285]:     name, host, displayno, screenno = connect.get_display(display)
Dec 11 14:49:45 ****-PC file.bash[1285]:   File "/usr/local/lib/python3.5/dist-packages/Xlib/support/connect.py", line 72, in get_display
Dec 11 14:49:45 ****-PC file.bash[1285]:     return mod.get_display(display)
Dec 11 14:49:45 ****-PC file.bash[1285]:   File "/usr/local/lib/python3.5/dist-packages/Xlib/support/unix_connect.py", line 61, in get_display
Dec 11 14:49:45 ****-PC file.bash[1285]:     raise error.DisplayNameError(display)
Dec 11 14:49:45 ****-PC file.bash[1285]: Xlib.error.DisplayNameError: Bad display name ""
Dec 11 14:49:45 ****-PC systemd[1]: Started file.service.

quando eu inicio o arquivo .bash ( $ /etc/init.d/file.bash start ) Eu não recebo nenhum erro

Estou usando o Ubuntu 16.04.1 e o python3.5

Editar:

o erro está em ( from pynput.keyboard import Key, Listener )

#!/usr/bin/python3.5
import socket
import subprocess
import time
import os
from pynput.keyboard import Key, Listener # <

mas o script funciona corretamente quando eu o chamo no terminal

    
por joe zak 11.12.2017 / 14:55

0 respostas