Трудности запуска скрипта при запуске

Я запускаю Ubuntu 16.04 с usb cec-адаптером, подключенным для управления моим телевизором. Я использую модифицированную версию этого скрипта, чтобы запустить cec-server, который принимает и отправляет команды.

Итак, скрипт работает; когда я запускаю его вручную после загрузки. Когда я выдаю pidof cec-client, он дает мне идентификатор, и я могу отправить команды в cec-server, которые работают немедленно. Так здорово.

Однако я просто не могу заставить его работать через crontab или через приложения запуска. pidof cec-client не вернет идентификатор, и я не могу отправлять команды.

TL; DR: скрипт работает, когда я запускаю его вручную. Не работает через crontab.

EDIT:

Кронтаблайн, который я использую, это @reboot /home/server/Documents/cecserver.sh

Сам скрипт:

#!/bin/bash # # Set up a fifo and connect cec-client to it # # Original By Will Cooke. http://www.whizzy.org CECLOG="/home/server/Documents/logs/cec.log" CECDEV="/dev/ttyACM0" CECFIFO="/home/server/Documents/logs/cec.fifo" CECCLIENT="/usr/bin/cec-client -d 1 -p 1 -o Codex" timestamp(){ date +"%Y-%m-%d %T" } log(){ echo "SERVER $(timestamp): $1" >> $CECLOG } echo "SERVER $(timestamp): File loaded ($1)" >> $CECLOG log "Starting server. Since only one server can run at a time, stopping first." log "Begin shutting down..." declare -a TAILPIDS=(`ps aux | grep 'tail -f /dev/null' | egrep -v grep | awk '{print $2}'`) declare -a CATPIDS=(`ps aux | grep 'cat $CECFIFO' | egrep -v grep | awk '{print $2}'`) if [ ${#TAILPIDS[@]} -gt 0 ] then log "Found some tail processes..." for i in "${TAILPIDS[@]}" do log "Killing $i" kill $i done fi if [ ${#CATPIDS[@]} -gt 0 ] then log "Found some cat processes..." for i in "${CATPIDS[@]}" do log "Killing $i" kill $i done fi log "Asking cec-client to stop if it's running..." killall -s 2 cec-client >> $CECLOG log "Trying to remove FIFO..." rm $CECFIFO >> $CECLOG log "Done shutting down." log "Done stopping, now starting..." log "Setting up FIFOs..." mkfifo $CECFIFO log "Open pipe for writing..." tail -f /dev/null > $CECFIFO & log "Opening pipe for reading and start cec-client..." (cat $CECFIFO | $CECCLIENT &) > /dev/null log "Start up complete." exit 0
1
задан 14 December 2017 в 01:40

0 ответов

Другие вопросы по тегам:

Похожие вопросы: