Os dados filtrados de uma transmissão ao vivo do MQTT são despejados em um arquivo csv denominado mqtt.csv
e o processo de despejo é feito por executor_start_up_job.txt
, que está escrito em BASH (tem um shebang).
Eu quero fazer o despejo do daemon de filtro, ou seja, em segundo plano, e também quero fazê-lo de modo que toda vez que o sistema for reinicializado, ele seja feito automaticamente. Então, concluí que escrevi um script init.d e o conteúdo do meu código é:
#!/bin/bash
set -x
requested_command=$1
start() {
/home/ed/start_up_job/executor_start_up_job.txt &
}
# Restart the Dump
stop() {
killproc executor_start_up_job.txt
echo
}
### main logic ###
case $requested_command in
start)
start
;;
stop)
stop
;;
status)
last_line='cat mqtt.csv | tail -1'
echo "last print line: $last_line"
;;
restart)
stop
start
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
;;
esac
exit 0
Depois de inserir set -x
, recebo a seguinte saída:
+ ./MySQL_table_update_daemon.sh start
+ requested_command=start
+ start
+ exit 0
P: Se eu puder fazer este código funcionar, então o colocarei no diretório /etc/init.d/
, para que ele funcione sempre. No entanto, atualmente ele não funciona e a saída sem o set -x
não é nada, por exemplo, é como se eu tivesse acabado de inserir o terminal.