Escrevendo o script de início com o diretório de trabalho diferente

0

Eu instalei octoprint no meu pi de framboesa no começo deste ano para controlar minhas impressoras 3D.

Eu consegui fazer as impressoras 2 de controle pi de uma vez usando o octoprint. Também adicionei uma segunda câmera (USB) para visualizar a segunda impressora. Consegui encontrar uma maneira de iniciar a segunda câmera e editar octoprint para ver a diferença entre as duas.

Meu único problema é que toda vez que eu começo meu pi de framboesa novamente eu tenho que mudar para um diretório de trabalho diferente:

cd ~/mjpg-streamer

então isso para iniciar a segunda câmera:

./mjpg_streamer -i "./input_raspicam.so -fps 5" -o "./output_http.so -p 8090"&

Eu quero ser capaz de escrever um script para iniciar a câmera na inicialização, para que eu não precise usar o ssh no meu framboesa, faça o login e envie os comandos todos os dias. Eu encontrei muito sobre como escrever scripts de inicialização, mas nada sobre como alterar o diretório de trabalho dentro dele.

Eu tenho usado isso para escrever scripts de início (sem sucesso):

sudo nano /etc/init.d/startsecondcamera
    
por Geilisa Almodovar 12.09.2017 / 23:40

1 resposta

2

Faça o script de inicialização fazer o cd antes de executar mjpg_streamer , assim como você está fazendo manualmente:

#!/bin/sh

cd /home/geilisa/mjpg-streamer
./mjpg_streamer -i "./input_raspicam.so -fps 5" -o "./output_http.so -p 8090"

Isto supõe que o seu diretório pessoal é /home/geilisa .

Você não pode usar ~ no script, pois é provável que seja executado por root. Se a execução do utilitário como raiz for um problema, use sudo -u gelisia ./mjpg_streamer ... no script para executá-lo como usuário gelisia .

Uma alternativa é adicionar um trabalho cron que seja executado na inicialização:

@reboot cd /home/geilisa/mjpg-streamer && ./mjpg_streamer -i "./input_raspicam.so -fps 5" -o "./output_http.so -p 8090"

Adicione isto no seu crontab usando o comando crontab -e . Isto irá abrir um editor com o seu crontab (possivelmente um arquivo vazio). Adicione a linha acima, salve e saia.

A maioria dos cron's que eu conheço permite usar @reboot (e @hourly , @daily etc.) em vez das cinco colunas de agendamento de tarefas que geralmente vão antes do comando real.

    
por 12.09.2017 / 23:51