質問

質問

raspberry pi 3私のLinuxにSambaサービスをインストールしましたJessie (Debian 8)

smb構成ファイル

[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。私のMacでSambaサービスを表示し、共有sharingフォルダにアクセスできます。ネットワークプリンタの下にプリンタがあるのを見ました。サンバプリンタで文書を印刷すると、「接続中」と表示され、データが送信され、データが正しく受信されます。

しかし、/usr/bin/printpdf実装されていないようです。/home/pi/logsSamba自体のログ(2つのログ、1つはマイコンピュータ名、もう1つは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

だから多くのことを見つけました。まず、CUPSを追加する必要があるprinting = BSDかもしれません。書く設定。その後、設定する必要がありますprintcap name = /dev/null。それ以外の場合は、Ghostscriptファイルにアクセスする前にそのファイルが消えます。不要なコマンドlpqlpr

[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

関連情報