onecdonly / runlast Goto Github PK
View Code? Open in Web Editor NEWrun custom shell-scripts after QPKG startup.
License: GNU General Public License v3.0
run custom shell-scripts after QPKG startup.
License: GNU General Public License v3.0
Currently, scripts are executed after NAS startup. During shutdown, no additional script runs can be configured.
It would be great to support init.d - style scripts, that are called with a parameter:
start
stop
As existing scripts likely do not support these parameters, a second script directory could be used for these new scripts: RunLast/init.d
.
Script execution order should be as follows:
sort
sort --reverse
This way, additional programs are started in the order 1-2-3 and shutdown 3-2-1, so dependencies between them are respected.
WDYT?
rather annoying getting a popup after login after each boot.
maybe [/scripts/runlast/]?
I can't delete folder on my qnap no matter if use bash script
rm -r /root/.docker/config.json
or
rmdir --ignore-fail-on-non-empty /root/.docker/config.json
Script PATH
PATH=/opt/bin:/opt/sbin:/share/CACHEDEV1_DATA/.qpkg/container-station/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/bin/X11:/usr/local/sbin:/usr/local/bin:/root/.docker:$PATH
from ssh it works ok, what am I missing here?
If installed RunLast on a TVS-873e with the latest QTS5 version installed. Got all disks encrypted so after Trevor they need to be decrypted first to start everything. Also SortMyPkg is installed. I needed RunLast to start Caddy's at boot for using it as a reverse proxy.
When decrypting the disks they get stuck at 69% and RunLast is stuck at in starting state. Only when cancelling RunLast the decryption continues to total decryption. Of course carry then does not start automatically. Even worse, when not cancelling RunLast after a few minutes the NAS becomes unavailable in the network (which might be something else maybe but when running through with the encryption it remains available). I've tested it several times and every time it's the same thing, decryption is stuck until I cancel the RunLast app start in the application manager.
The only init style startup script I use is the caddy one which I modified for the proper reverse proxy start. It all starts when running it manually so the script is fine as well.
Starting a few weeks ago, Runlast fails to start docker-compose every time on QNAP Nas.
I have set-up a daily on/off schedule for the NAS, it turns off at 1 am and turns back on at 7 am. I used Runlast to start docker-compse containers for three months without an issue, but in the last 3 to for weeks, it fails every morning and I have to manually start the containers, using the same script.
The weird thing is that in the last 4 weeks since it wasn't working, 1 or 2 days it worked...
This is the latest log, but they all look like this every day
`RunLast (20220426)
[Mon May 16 07:08:40 EEST 2022] begin "start" scripts ...
[Mon May 16 07:08:41 EEST 2022] -> execute: "'/share/CACHEDEV1_DATA/.qpkg/RunLast/scripts/start-docker-compose.sh'" ...
[Mon May 16 07:09:23 EEST 2022] => exitcode: (255)
[Mon May 16 07:09:23 EEST 2022] => stdout: ""
[Mon May 16 07:09:23 EEST 2022] => stderr: "[4222] Failed to execute script docker-compose
Traceback (most recent call last):
File "urllib3/connectionpool.py", line 677, in urlopen
File "urllib3/connectionpool.py", line 392, in _make_request
File "http/client.py", line 1277, in request
File "http/client.py", line 1323, in _send_request
File "http/client.py", line 1272, in endheaders
File "http/client.py", line 1032, in _send_output
File "http/client.py", line 972, in send
File "docker/transport/unixconn.py", line 43, in connect
FileNotFoundError: [Errno 2] No such file or directory
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "requests/adapters.py", line 449, in send
File "urllib3/connectionpool.py", line 727, in urlopen
File "urllib3/util/retry.py", line 410, in increment
File "urllib3/packages/six.py", line 734, in reraise
File "urllib3/connectionpool.py", line 677, in urlopen
File "urllib3/connectionpool.py", line 392, in _make_request
File "http/client.py", line 1277, in request
File "http/client.py", line 1323, in _send_request
File "http/client.py", line 1272, in endheaders
File "http/client.py", line 1032, in _send_output
File "http/client.py", line 972, in send
File "docker/transport/unixconn.py", line 43, in connect
urllib3.exceptions.ProtocolError: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "docker/api/client.py", line 214, in _retrieve_server_version
File "docker/api/daemon.py", line 181, in version
File "docker/utils/decorators.py", line 46, in inner
File "docker/api/client.py", line 237, in _get
File "requests/sessions.py", line 543, in get
File "requests/sessions.py", line 530, in request
File "requests/sessions.py", line 643, in send
File "requests/adapters.py", line 498, in send
requests.exceptions.ConnectionError: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "docker-compose", line 3, in
File "compose/cli/main.py", line 81, in main
File "compose/cli/main.py", line 200, in perform_command
File "compose/cli/command.py", line 70, in project_from_options
File "compose/cli/command.py", line 153, in get_project
File "compose/cli/docker_client.py", line 43, in get_client
File "compose/cli/docker_client.py", line 170, in docker_client
File "docker/api/client.py", line 197, in init
File "docker/api/client.py", line 222, in _retrieve_server_version
docker.errors.DockerException: Error while fetching server API version: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))"
[Mon May 16 07:09:23 EEST 2022] end "start" scripts`
This is the start-docker-compose.sh script (and it works perfectly manually triggered every morning):
`#!/bin/bash
$(getcfg container-station Install_path -f /etc/config/qpkg.conf)/bin/docker-compose -f /share/Container/qnap-docker-compose/docker-compose.yml up -d`
Hey
QNAP being QNAP, don't provide any form of authentication for 3rd party apps, so the RunLast logs are accessible to everybody on the network - Is there anyway to prevent RunLast making them accessible via a browser?
Also awesome tools, thanks for taking the time to put this together, its solved a major headache for me using docker-compose. I can simple run
docker start $(docker ps -a -q)
And everything starts!
I've recently migrated to a new QNAP NAS, and noticed that RunLast doesn't seem to work automatically anymore (I've been resorting to running it manually after boot up). Looking at the QTS UI during startup shows RunLast starting up, but then display a Canceled message, not sure where that is coming from. Wondering if there are other users seeing this.
[App Center] Canceled: Start RunLast (CLI)
+-----------------------------------------------------------------------------------------------------------------------------+
| Main > System log > Sorting > Filter > Records |
| |
| record_id,date,time,user,app_id,application,category_id,category,msg_id,message |
| 13082,2020-12-24,17:16:03,System,---,---,---,---,0,[RunLast] end "start" scripts |
| 13081,2020-12-24,17:15:56,System,---,---,---,---,0,[RunLast] begin "start" scripts ... |
| 13080,2020-12-24,17:08:43,System,A039,App Center,C002,App Status Change,56,[App Center] Canceled: Start RunLast (CLI). |
| 13079,2020-12-24,17:08:02,System,---,---,---,---,0,[RunLast] begin "start" scripts ... |
| 13078,2020-12-24,17:07:55,System,A041,myQNAPcloud,C003,myQNAPcloud Link,31,[myQNAPcloud] myQNAPcloud Link service for |
| myQNAPcloud website is ready. |
| 13077,2020-12-24,17:07:54,System,A041,myQNAPcloud,C003,myQNAPcloud Link,28,[myQNAPcloud] myQNAPcloud Link service for |
| mobile and PC applications is ready. |
| 13076,2020-12-24,17:07:19,System,A200,Hybrid Backup Sync,C003,Service,43,[Hybrid Backup Sync] Started RTRR server. |
| 13075,2020-12-24,17:04:10,System,A201,Network & Virtual Switch,C012,Infrastructure,0115,[Network & Virtual Switch] Set |
| "Adapter 1" as the system default gateway. |
| 13073,2020-12-24,17:03:51,System,A201,Network & Virtual Switch,reserved,---,0153,[Network & Virtual Switch] Initialized |
| Network & Virtual Switch. |
| 13074,2020-12-24,17:03:41,System,A007,Power,C001,NAS Power Status,18,[Power] System started. |
| 13072,2020-12-24,17:02:49,System,1608825769,A002,Storage & Snapshots,C005,File system type: EXT4.,[Storage & Snapshots] |
| Detected external device "WD My Passport 25E2". File system label: ExternalBackup |
| 13071,2020-12-24,17:00:43,System,---,---,---,---,0,[SortMyQPKGs] 'autofix' completed |
| 13070,2020-12-24,17:00:43,System,---,---,---,---,0,[SortMyQPKGs] 'autofix' requested |
| 13069,2020-12-24,17:00:35,System,A007,Power,C001,NAS Power Status,17,[Power] System shut down on Thu Dec 24 17:00:35 CET |
| 2020. |
| 13068,2020-12-24,16:59:33,System,A201,Network & Virtual Switch,reserved,---,0155,[Network & Virtual Switch] Stopped |
| Network & Virtual Switch. |
| 13067,2020-12-24,16:58:54,System,---,---,---,---,0,[RunLast] end "stop" scripts |
| 13066,2020-12-24,16:58:54,System,---,---,---,---,0,[RunLast] begin "stop" scripts ... |
| 13065,2020-12-24,16:58:54,System,---,---,---,---,0,[RunLast] end package reorder |
| 13064,2020-12-24,16:58:53,System,---,---,---,---,0,[RunLast] SortMyQPKGs will reorder this package |
| 13063,2020-12-24,16:58:53,System,---,---,---,---,0,[RunLast] begin package reorder ... |
| 13062,2020-12-24,16:57:16,System,---,---,---,---,0,[RunLast] end "start" scripts |
| |
| |
| N: Next page |
| R: Return |
| |
+-----------------------------------------------------------------------------------------------------------------------------+
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.