1

I am running two mesh-networking daemons, namely A.L.F.R.E.D. and BATADV-VIS on Raspberry Pi-2. BATADV-VIS is dependent on ALFRED hence I am using tmux to run them as a complete session.

I have created a bash file which I call from the /etc/rc.local. The details are as follows:

# !/bin/sh
tmux new-session -d -s piSession

tmux new-window -d -n 'alfredHere' -t piSession:1 'alfred --interface wlan0' 
# the line above doesn't get executed when called from /etc/rc.local

tmux new-window -d -n 'batvisHere' -t piSession:2 'batadv-vis -s'

the above bash file is in /home/pi/ folder

When I do the following tmux ls I only get 2 Windows where infact I am expecting 3 (1 x alfred running + 1 x batadv-vis running + 1 normal)

when I do the following tmux attach I do not see the alfred --interface wlan0 at all and the only other window open (except a common terminal session) is running batadv-vis -s.

Why is the line getting skipped or not being executed?

Observation

when I run the script from the /home/pi/ folder as following:

bash /home/pi/path/myScript.sh
tmux ls

It shows 3 Windows and then everything works perfectly. Why isn't it triggering the 2nd line in case of a call from /etc/rc.local ?

Jacobm001
  • 11,898
  • 7
  • 46
  • 56
Shan-Desai
  • 1,531
  • 2
  • 13
  • 28
  • cannot add tmux tag since don't have enough Reputations – Shan-Desai Mar 01 '16 at 17:16
  • Have you checked that the command works without tmux from rc.local? – Craig Mar 01 '16 at 17:24
  • @Shan-Desai: I have added the tag for you. – Jacobm001 Mar 01 '16 at 17:26
  • @Craig Hi will have a look at it but it should work because I have another stand alone bash script in rc.local that executes perfectly – Shan-Desai Mar 01 '16 at 17:52
  • do you think adding a wait after opening a session and starting a window can help? @Craig – Shan-Desai Mar 01 '16 at 18:16
  • 1
    I doubt it. The man page says that alfred runs as daemon. If that is the case it is probably forking and exiting immediately. When that happens the tmux window is closed. – Craig Mar 01 '16 at 20:20
  • to verify @Craig you can add ; read to the end of the command and look whether the tmux window is expecting input (and closes on pressing enter) – msrd0 Mar 01 '16 at 20:50
  • Try adding this before the second tmux command tmux set-option -t piSession set-remain-on-exit on That should prevent the window from closing when the command exits. – Craig Mar 01 '16 at 22:05
  • @Craig I tried tmux set-option -t piSession set-remain-on-exit-on as you mentioned now the call works from the /etc/rc.local but the message reads on the ALFRED window : pane is dead.

    but running from /home/pi/ with bash command works well again.

    – Shan-Desai Mar 02 '16 at 11:20
  • I found a rough end thing around ALFRED and BATADV-VIS both of them are start-stop-daemon types and can be run using the following: start-stop-daemon -b --start --exec /usr/local/sbin/alfred -- -i wlan0 start-stop-daemon -b --start --exec /usr/local/sbin/batadv-vis -s but even though I keep them in a bash script and run the same script via rc.local ALFRED doesn't execute but batadv-vis does. sadly only way I can trigger it is through and ssh login :(

    any tips on how to start start-stop-daemon on bootup?

    – Shan-Desai Mar 03 '16 at 16:24
  • still no luck with this I tried putting the scripts in bin/ in the $HOME folder and changed the .bashrc script by setting the path variables as follow: export PATH=$PATH:bin/ in both the root and /home/pi folder I still cannot run the Daemons on start up nor with crontab with @reboot

    only make believe way is I need to ssh into the pi and trigger it by myself.

    – Shan-Desai Mar 04 '16 at 22:02

0 Answers0