Enable autostart

From Rsewiki
(Difference between revisions)
Jump to: navigation, search
(Created page with "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 ...")

Revision as of 10:51, 22 October 2023

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 IP of raspberry on the Teensy display.
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
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
 nn=`cat $f`
 yy= $(expr length $nn)
 if [ $yy -gt 2 ];
 then
   if [ $hn != $nn ]; 
   then
     hostnamectl set-hostname $nn
     # seems like /etc/hosts is not updated, but /etc/hostname is
     sed -i "s/$hn/$nn/g" /etc/hosts
   else
     echo Same hostname, all is fine.
   fi
 fi
else
 echo "File >" $f "< not found."
fi

The script needs to be run as root, it is therefore set to run as part of the boot process.

Create the script in /etc/init.d

sudo nano /etc/init.d/host_rename.sh

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.sh
sudo ln -s /etc/init.d/host_rename.sh /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.

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox