Custom Script not running at startup despite following guidance...



  • @stigzler dude,
    move that code to a myuberscript.py, not inside custom.sh. And your custom.sh should be :

    #!/bin/bash
    python /path/to/myuberscript.py
    


  • @Substring - Thanks. I see the logic behind that now..

    However, tried it - still doesn't work. :(

    Both custom.sh and myuberscript.py (yes - kept the filename ;) ) run OK independantly. However, script still doesn't appear to run on startup.

    I checked S99custom in cd /etc/init.d and it matches the scripting here:

    https://github.com/recalbox/recalbox-buildroot/blob/master/board/recalbox/fsoverlay/etc/init.d/S99custom

    So I don't think it's that

    I also chmod u+x both.

    Would prefer this method over delving deeper into the image, as, if it works, it could be very straightforward. Any idea why the scripts aren't booting at startup despite that being their intended purpose?



  • @lackyluuk - Your guide was great. Just google translated it + very straightforward. Thanks!

    However, same issue! :(

    Scripts work when run individually, but doesn't run automatically at startup.

    I'm really not sure what's going on. Any ideas? Might have to try a re-install at this rate.


  • Translator
    Translation Master

    @stigzler Does your script in /etc/init.d execute really without errors? Try to start this one. If you can start this without error, then it should work.

    Do not start the fanControl.py script itself..start the onr, which starts then the fanControl.py



  • @lackyluuk - thanks for the quick reply. Yes, I put the script exactly as you put it in the wiki into init.d. Had to name it "S70StartFanControl.py" as S32 was already taken.

    I executed this directly and it, in turn, called by full script. So I know both scripts work on their own.

    There just seems to be a problem of startup scripts not being booted.

    The only things I wonder about are:

    I choose an external usb drive in recalbox (I have a USB3 drive connected to the Pi3). Dunno if that effects which scripts get called form where at startup?

    My Pi seems to boot twice. I turn it on and it boots to the rainbow screen and a recalbox splash ("For recovery mode hold Shift"). It then powers down and re-boots to the normal boot screen and boots fine.

    Any ideas?


  • Translator
    Translation Master

    @stigzler Booting from the USB Stick should'nt be a problem. I also use one and it starts all scripts properly from init.d

    About the double booting issue I really have no idea.
    If possible, you could try a clean install of recalbox. (Unfortunately the servers are down at the moment, so you cannot get the clean image I guess)



  • @stigzler is your usb drive formatted as fat32 ?



  • One more suggestion : runbash -x /etc/ini.d/S99custom and paste here the output if you can't read it. I'm pretty sure it won't work because of fat32



  • @Substring:

    # bash -x /etc/init.d/S99custom
    + test -e /recalbox/share/system/custom.sh
    + /recalbox/share/system/custom.sh
    /etc/init.d/S99custom: /recalbox/share/system/custom.sh: /usr/bin/bash: bad interpreter: No such file or directory
    

    Does my USB3 drive need to be a different format? If so - what and how?
    thanks for both of your ongoing help



  • @Substring
    Whoops! Spotted the silly error. Replaced

    #!/usr/bin/bash
    

    with

    #!/bin/bash
    

    "bash -x /etc/ini.d/S99custom" now run the script fine manually. However, still doesn't start at startup!!

    I't doing my head in this issue!



  • @stigzler can you add sime debugging echo to your custom.sh ? And paste your custom.sh script here ?



  • @Substring + @lackyluuk
    OK. To try and bottom this, I did a totally clean re-install and still not working. Here's my steps:

    • Formatted USB3 drive to FAT32 @ 4096 Cluster size (irrelevant as tested on SD card boot only)
    • Formatted the 32Gb Samsung SD card with SDCard Formatter
    • Installed fresh installation of recalbox + updated to 4.0.2 (higher updates still unavailable)
    • wrote a new custom.sh script in nano + placed in share\system
    • placed the script fanControl.py in the same directory. CHMod'd them both
    • Tested custom.sh via putty - works fine, displays "Launching Fan Control"
    • Tested fanControl.py individually via putty. Work as it should.
    • Restarted Recalbox. Neither script booted :(

    Hmmm. This is soo frustrating! I thouhgt I'd hit gold with recalbox, as had tried other images to date, but this one stood head and shoulder above the rest. Until I hit this issue that is! And I need an image that can accommodate custom scripts.

    Below, my two scripts:

    Custom.sh:

    #!/bin/bash
    echo "Launching FanControl"
    python fanControl.py
    

    fanControl.py:

    here

    (I had to include this as a link as the pasted code caused this forum system to mark my post as Spam! Hopefully pastebin should be OK for you guys trusting links)

    That's as much 'out of the box' as I can make.. Any ideas?


  • Translator
    Translation Master

    @stigzler I really don't know what's wrong.
    But if you like you can try exactly what I did in the Wiki Article to have both scripts as .py scripts and use what I wrote in the S32StartFanControl as a subprocess

    Just for trying :)



  • @stigzler You'd better tweak your custom.sh like :

    #!/bin/bash
    recallog "Launching FanControl"
    /usr/bin/python fanControl.py
    

    This way you'll find "Launching FanControl" in ~/logs/recalbox.log. If you do get the output, then it's a problem with python. Notice I added the full path to python, as I don't know how the $PATH looks like at that moment.



  • @lackyluuk - thanks but, as above, tried that already. No joy :(



  • @Substring.
    Finally getting somewhere! Did as you directed, and the log reads:

    [       16.71] : Starting S92switch
    [       16.73] : script /recalbox/scripts/powerswitch.sh [ STARTED ]
    [       17.05] : Starting S94manager
    Will not start pm2 : system.api.enabled is set to 0
    [       17.32] : Launching FanControl
    

    And that's the end of the log at startup. The fan doesn't run, but it does if I run the py script from shell.

    Also tried:

    /usr/bin/python fanControl.py
    

    from shell - script booted fine.

    also added logging after the python call in the bash script. This also logged, indicating the python call didn't crash the bash script?

    [       17.07] : Launching FanControl
    [       17.17] : fanControl call made.
    

    So - it's looking like python is the culprit? What's next?



  • @stigzler You must understand that a init script doesn't have tne same environment as a logged in user. That's why I suggested you put the full path to python in the custom.sh. I do mean it

    Go on the IRC channel, there is a link in the topbar. Then call me with @substring, and be patient (I'm on CEST timezone)



  • It was 1am when you tried to poke me lol



  • @substring - apologies on there now..



  • So, there were 2 culprits :

    • had to start the .py as multiprocess
    • the script tried to open an unexisting logfile : forced the path


Want to support us ?

Join us on :

Download Recalbox

446
Online

37162
Users

16454
Topics

124143
Posts

Looks like your connection to Recalbox Forum was lost, please wait while we try to reconnect.