A impressora do serviço Samba não executa

0

Eu instalei um serviço samba no meu raspberry pi 3 linux: Jessie (Debian 8) .

smb.conf

[global]
  netbios name = medicalexporter
  workgroup = WORKGROUP

  public = yes

  # Run a WINS server
  wins support = yes

  local master = yes
  preferred master = yes
  os level = 65

  log level = 10
  log file = /home/pi/logs/samba.log.%m

[SambaTest]
  comment = Samba-Test-Freigabe
  path = /home/pi/shares/test
  read only = no

[pdfCreatorLinux]
  path = /tmp
  printable = yes
  guest ok = yes
  print command = /usr/bin/printpdf %s
  lpq command =
  lprm command =

/ usr / bin / printpdf

#!/bin/sh
LOG_FILE=/home/pi/logs/pdf.log
exec 3>&1 1>>${LOG_FILE} 2>&1
DATE="date +%b%d-%H%M%S"
OUTDIR=/home/pi/shr/pdfdropbox

"hello" >> /home/pi/logs/2.log
ps2pdf $1 \$OUTDIR/\$DATE.temp
mv \$OUTDIR/\$DATE.temp \$OUTDIR/\$DATE.pdf
rm \

Para fins de teste, forneci a esse script a permissão 777 with sudo chmod 777 /usr/bin/printpdf

pasta samba

mkdir -p ~/shr/pdfdropbox
chown root:root ~/shr/pdfdropbox
chmod u+rwx ~/shr/pdfdropbox

O serviço samba tem um usuário e smbd & nmbd estão em execução. Eu posso ver o serviço samba no meu mac em sharing e acessar a pasta de compartilhamento. Eu vejo a impressora nas minhas impressoras de rede. Quando imprimo um documento pela impressora samba, ele me mostra que está se conectando, enviando os dados e que os dados são recebidos sem falhas.

Mas o /usr/bin/printpdf parece não ser executado. Não há nada no /home/pi/logs além dos logs do próprio samba (dois logs, um com o nome do meu computador e outro com um ip).

Quando inicio o script de pdf manualmente, os logs são criados.

PS: Eu me concentrei principalmente nesse tutorial: link

Pergunta

Por que o script não é executado?

    
por Andi Giga 22.06.2016 / 20:47

2 respostas

0

Acredito que esta linha tenha um erro:

"hello" >> /home/pi/logs/2.log

Você pode querer tentar

echo "hello" >> /home/pi/logs/2.log

E você está citando o $ s no restante do script. Eu tentaria remover o \ s. E cite os nomes completos dos arquivos.

Terminando com:

echo "hello" >> /home/pi/logs/2.log
ps2pdf "$1" "$OUTDIR/$DATE.temp"
mv "$OUTDIR/$DATE.temp" "$OUTDIR/$DATE.pdf"
rm "$1"

na segunda metade do seu script

    
por 22.06.2016 / 23:32
0

Então eu encontrei várias coisas. Primeiro, eu precisava adicionar printing = BSD , caso contrário, o CUPS é usado, o que substitui configurações. Então eu precisava definir printcap name = /dev/null caso contrário os arquivos ghostscript desapareceriam antes que eu pudesse acessá-los. Os comandos lpq e lpr onde não são necessários.

[pdfCreatorLinux2]
#  load printers = no
  printcap name = /dev/null
  path = /tmp/
  printable = yes
  printing = BSD
  print command = /usr/bin/printpdf %s
#  lpq command =
#  lprm command =

Em segundo lugar, todos os scripts e pastas devem estar acessíveis ao usuário do serviço samba.

PS: Eu também ajustei o script de pdf, mas esta não foi a razão pela qual ele não foi executado.

#!/bin/sh
LOG_FILE=/home/pi/logs/pdf.log
exec 3>&1 1>${LOG_FILE} 2>>&1
DATE=$(date +"%m_%d_%Y")
OUTDIR="/home/pi/shr/pdfdropbox"

ps2pdf $1 "$OUTDIR/$DATE.temp"
mv $OUTDIR/$DATE.temp $OUTDIR/$DATE.pdf
rm $1
    
por 23.06.2016 / 10:56