[QPKG] RunLast

Description

RunLast creates an environment to run commands or shell-scripts after QPKG re-integration has occurred during QTS NAS bootup.

This allows you to run scripts dependent on QPKGs during QTS startup.

What it does

This package creates a scripts directory in the package installation path:

  • init.d
  • scripts

Place your SysV-style scripts in the init.d directory. These will be executed with a start parameter after NAS startup, and with a stop parameter before NAS shutdown. Scripts in the scripts directory will be executed only during startup, and always after the custom init.d start script execution.

Installation

  • Available in the MyQNAP repo, and can also be installed via the sherpa package manager.

Notes

  • When this package is installed, there’s not much to see. Find the package icon and click the ā€˜Open’ button to display the current log file - any stdout and stderr from your scripts will be shown here.

  • The log file is viewable via your web browser but is not a real web document, so it can change without your browser noticing. Whenever viewing the log, ensure you force a page refresh: CTRL+F5.

  • To jump to the scripts directory:

cd $(getcfg RunLast Scripts_Path -f /etc/config/qpkg.conf)
  • Or, to jump to the init.d directory:
cd $(getcfg RunLast SysV_Path -f /etc/config/qpkg.conf)

Please do not stop developing ā€œRunLast", please !. And don’t make it worse than it is! It already follows the right approach, especially because of the nice structure of the SysV start scripts. You can get almost anything to run with it if the user considers the dependencies of his application on other QPKG’s and steals a little from their start scripts. You should mention that and point it out!
I Think ā€œRunLastā€ is feature enough in implementing a custom start- and stop-environment to QNAP-Devices

Maybe you can think of something in the future that allows you to generate your own dependency key from all installed, active QPKGs when starting.

… and a wooden spoon as an icon, seriously?

Best regards,

Mandragor59

***** There are no problems, there are only challenges *****

…

Thank you for the back-handed compliment. :wink:

Already tried it. Unfortunately, QTS stalls when attempting to load a dependency key with more than a handful of values.

Yes, you understand the reference right? Besides, you had your chance to suggest something better. :grin:

I’ve been considering adding support for QTS 5.2.0 and-later by getting RunLast to wait for the QTS QPKG init proc to exit. When it does, then assume all QPKGs are started and run the user-scripts.

I’ll do some work on this and see how reliable it is. Maybe RunLast can be resumed?

1 Like

Please do it! Absolutely ! In any case ! They will love you for it!

… and maybe you consider to make your ā€œdescriptionā€ not so negative and ask for uninstallation right away ! Maybe you better add a note that in QTS 5.2.0 or later you have to consider the dependencies to the required QPKG’s in the start scripts (at the moment).

***** There are no problems, only challenges *****
…

1 Like

Well, not really. The only reference I can think of as an amateur cook to my wooden spoon is that it doesn’t fit in my mouth. Perhaps you can enlighten an older German user. I would (if asked again) rather choose a medal or a winner’s trophy with the inscription ā€œLast Placeā€. :sunglasses:

I like to set expectations low, right from the outset. :grimacing:

There’s already a note in the OP about this.

In various countries (such as mine with a strong sports culture), the ā€œwooden spoon awardā€ is given to a sports team that comes dead-last each year. It’s not a real award. :wink:

RunLast is now available through sherpa for QTS 5.2.0 and-later. :nerd_face:

I’ll submit the updated version (250707) to the MyQNAP repo shortly.

1 Like

Hi

Sorry for bumping this old (ish) thread, but i wanted to ask if it’s possible, with your app, to do what i’m triyng to do lol.

So i have mktorrent on my qnap from github.

Now, i want to execute the make command every time on restart, because the program is not persistent.

is it possible to do this with this tool? Because every time i try i get an error saying ā€œmake - command not foundā€. I have make installed through opkg and it works.

I have to add that i’m very new to scripting, i’d like to use bash for this. But if there’s a better alternative to do this i’m all ears.

Any help is greatly appreciated.

Hi @DLS4BZ and welcome to the forum. :slight_smile:

If your script uses packages installed through Entware (and opkg), suggest using the Entware init system to launch your script instead of RunLast. What you want can be done with RunLast, but might be done better in Entware.

Place your executable startup script in /opt/etc/init.d/ and ensure the script filename starts with an uppercase ā€˜S’. Your script will now run automatically after Entware has been started.

Thanks for your help, it finally worked!