Вопрос

Вопрос

Я установил службу Samba на свой raspberry pi 3Linux: 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

В целях тестирования я дал этому скрипту 777разрешениеsudo chmod 777 /usr/bin/printpdf

папка самба

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

У службы samba есть пользователь и smbd& nmbdзапущены. Я вижу службу samba на моем mac в sharingи получаю доступ к папке общего доступа. Я вижу принтер в моих сетевых принтерах. Когда я печатаю документ через принтер samba, он показывает мне, что он подключается, отправляет данные и что данные принимаются без сбоев.

Но, /usr/bin/printpdfпохоже, не выполняется. В нем нет ничего, /home/pi/logsкроме логов от самой samba (два лога, один с именем моего компьютера, другой с ip).

Когда я запускаю скрипт PDF вручную, создаются журналы.

PS: Я в основном придерживался этого урока: http://www.tldp.org/LDP/LG/issue72/bright.html

Вопрос

Почему скрипт не выполняется?

решение1

Я считаю, что в этой строке есть ошибка:

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

Вы можете попробовать

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

И вы цитируете $s в остальной части скрипта. Я бы попробовал убрать \s. И цитировать полные имена файлов.

В итоге получается:

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

во второй половине вашего сценария

решение2

Итак, я нашел несколько вещей. Сначала мне нужно было добавить, printing = BSDможет быть, иначе CUPS используется, которыйпереопределяетнастройки. Затем мне нужно было установить, printcap name = /dev/nullиначе файлы ghostscript исчезали до того, как я мог получить к ним доступ. Команды lpqи lprне требовались.

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

Во-вторых, все скрипты и папки должны быть доступны пользователю сервиса Samba.

PS: Я также скорректировал скрипт PDF, но это не было причиной того, что он не был выполнен.

#!/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

Связанный контент