![Pergunta](https://rvso.com/image/89173/Pergunta.png)
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 \$1
Para fins de teste, dei permissão a este script 777
comsudo 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á em execução. Posso ver o serviço samba no meu mac sharing
e acessar a pasta de compartilhamento. Vejo a impressora em minhas impressoras de rede. Quando imprimo um documento pela impressora samba, ele me mostra que está conectando, enviando os dados e que os dados são recebidos sem falhas.
Mas o /usr/bin/printpdf
parece não ter sido executado. Não há nada /home/pi/logs
além dos logs do próprio samba (dois logs, um com o nome do meu computador e outro com o ip).
Quando inicio o script PDF manualmente, os logs são criados.
PS: Eu basicamente segui esse tutorial: http://www.tldp.org/LDP/LG/issue72/bright.html
Pergunta
Por que o script não é executado?
Responder1
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 resto 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 roteiro
Responder2
Então encontrei várias coisas. Primeiro eu precisei adicionar printing = BSD
talvez, caso contrário o CUPS é usado, o quesubstituiçõesconfigurações. Então eu precisei 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: Também ajustei o script do pdf, mas não foi por esse motivo que 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