Enable autostart
Back to Robobot B
Autostart
Start app to display IP on Regbot display, log CPU temperature and synchronize hostname
Make an on-reboot script in the home directory
cp ~/svn/robobot/setup/on_reboot.bash ~/
This file is something like:
#!/bin/bash # script to start applications after a reboot # # Run the app to show Raspberry's IP on the Teensy display and start button. mkdir -p /home/local/svn/log cd /home/local/svn/log # save the last reboot date echo "Rebooted" >> rebootinfo.txt date >> rebootinfo.txt ../robobot/ip_disp/build/ip_disp & # save PID for debugging echo "ip_disp started with PID:" >> rebootinfo.txt pgrep -l ip_disp >> rebootinfo.txt # # start camera server cd /home/local/svn/robobot/stream_server /usr/bin/python3 stream_server.py & echo "python3 cam streamer started with PID:" >> rebootinfo.txt pgrep -l python3 >> rebootinfo.txt exit 0
Use crontab to run this script at reboot.
crontab -e
If asked, select the preferred editor (suggesting nano).
Add this line at the end:
@reboot /home/local/on_reboot.bash
Hostname update
A script updates the Raspberry Pi hostname, with the name in ~/svn/log/robotname. The script rename_host.bash is:
#!/bin/bash hn=`hostname` f="/home/local/svn/log/robotname" if [ -f $f ]; then # file exist # get (new) name in file to variable nn nn=`cat $f` echo "found name " $nn yy=$(expr length $nn) if [ $yy -gt 2 ]; then # length is longer than 2 characters if [ $hn != $nn ]; then # replace old hostname with new echo ++++++++++ >> rebootinfo.txt date >> rebootinfo.txt echo new name is $nn, so rename host from $hn >> rebootinfo.txt hostnamectl set-hostname $nn sed -i "s/$hn/$nn/g" /etc/hosts fi fi else echo "File >" $f "< not found." fi
The script needs to be run as root; therefore, it is set to run as part of the boot process.
Create the script in /etc/init.d
sudo nano /etc/init.d/host_rename.bash
Enter the following lines into the new file.
#!/bin/bash bash /home/local/svn/robobot/setup/rename_host.bash
Make the file executable and add it to run-level 2 (before networking is started)
sudo chmod +x /etc/init.d/host_rename.bash sudo ln -s /etc/init.d/host_rename.bash /etc/rc2.d/S99host_rename
The script is then executed when the Raspberry boots, and if the hostname does not match that of the Teensy, then the hostname is modified.
If the name changes, the script notes it in the file '/home/local/svn/log/rebootinfo.txt' (owned by 'root').