O trabalho Cron inicia o script python, mas nenhuma saída é recebida

0

Eu tenho um programa python que copia o conteúdo de dispositivos USB conectados ao meu pc, neste caso, é um tablet Android. O script usese pyudev para detectar os dispositivos e use GVfs para montá-los.

Eu queria começar o roteiro e executá-lo no backgroud, então não preciso ativá-lo toda vez. Eu tentei iniciá-lo em /etc/init/ , mas executar GVfs como causa raiz de problemas, então decidi executar o script via cron . Eu tenho que definir para iniciar em um momento específico, se eu fizer um ps -aux e eu posso ver o processo listado, no entanto, se eu ligar o meu dispositivo, nada acontece, os arquivos não são copiados.

Se eu iniciar o script manualmente, ele funcionará sem problemas.

Isto é o que eu tenho no meu crontab.

45 10 * * * cyberbemon /home/cyberbemon/Development/python/usb-dumper-1.0/build/lib.linux-x86_64-2.7/usb-dumper/./usb-dumper.py '

O python está usando esse env #!/usr/bin/env python

Eu tentei registrar a saída dos programas em um arquivo, assim cyberbemon /home/cyberbemon/Development/python/usb-dumper-1.0/build/lib.linux-x86_64-2.7/usb-dumper/./usb-dumper.py > /home/cyberbemon/usb-dumped/log.txt 2>&1

Mas esse arquivo está vazio.

Eu obtive a fonte do programa aqui: link

    
por cyberbemon 21.01.2016 / 13:18

1 resposta

0

  • Se você tiver editado o crontab do ano do usuário, suprima / apague o nome de usuário cyberbemon que precede o caminho longo que leva ao script do ano. Você não precisa do nome do usuário lá.

  • Se não estou enganado, você especifica o ambiente do usuário com #! no início, não apenas ! . Pode ser apenas um erro de digitação no post ou você esqueceu de escapar do sinal de libra dentro do bloco de código, ao escrever seu post (assim como \#! ). Por isso, deve ler:

    #! / usr / bin / env python

  • Pode ser apenas eu, mas não estou familiarizado com os caminhos que contêm /./ em algum lugar no meio, como em:

% bl0ck_qu0te%

... sem os espaços adicionados. Normalmente, na maioria dos tipos de cascas, . é:

  • sinônimo de cmd source quando usado sozinho antes de um nome de arquivo.

  • denota um arquivo oculto ao prefixar um nome de arquivo.

  • é usado na regex para corresponder a um único caractere

  • indica o diretório de trabalho atual quando usado em caminhos, como por exemplo em

    $ cd $ HOME / Desktop; pwd

    / home / cyberbemon / Desktop

    $ cp $ HOME / .bashrc.

Eu recomendo que você vá ao diretório onde seu script Python está armazenado e no terminal execute o comando pwd . Você obterá o caminho completo para o script do ano.

    
por Cbhihe 21.01.2016 / 19:59