[QPKG] RunLast

說明

RunLast 會在 QTS NAS 開機時,於 QPKG 重新整合後建立一個可執行指令或 shell 腳本的環境。

這讓您能在 QTS 啟動時執行依賴 QPKG 的腳本。

功能說明

此套件會在安裝路徑下建立一個腳本目錄:

  • init.d
  • scripts

請將您的 SysV 風格腳本放在 init.d 目錄中。這些腳本會在 NAS 啟動後以 start 參數執行,並在 NAS 關機前以 stop 參數執行。scripts 目錄中的腳本只會在啟動時執行,且一定會在自訂 init.d 啟動腳本執行之後執行。

安裝方式

注意事項

  • 安裝此套件後,表面上看不到太多內容。請找到套件圖示並點擊「開啟」按鈕,即可顯示目前的日誌檔案——您的腳本所產生的 stdout 和 stderr 都會在此顯示。

  • 日誌檔案可透過網頁瀏覽器檢視,但它不是真正的網頁文件,因此內容可能會變更而瀏覽器未察覺。檢視日誌時,請務必強制刷新頁面:CTRL+F5。

  • 若要跳轉到 scripts 目錄:

cd $(getcfg RunLast Scripts_Path -f /etc/config/qpkg.conf)
  • 或者跳轉到 init.d 目錄:
cd $(getcfg RunLast SysV_Path -f /etc/config/qpkg.conf)

請不要停止開發「RunLast」,拜託了!而且不要讓它變得比現在還糟!它已經採用了正確的方法,尤其是因為 SysV 啟動腳本的結構非常好。只要使用者考慮到他應用程式對其他 QPKG 的依賴性,並從它們的啟動腳本中借鑑一些內容,幾乎什麼都能用它來運行。你應該提及這一點並加以強調!

我認為「RunLast」在為 QNAP 設備實現自訂啟動和停止環境方面已經功能足夠了。

也許你未來可以考慮一些方法,讓使用者在啟動時能從所有已安裝且啟用的 QPKG 中自動生成自己的依賴鍵。

……然後圖示竟然是一根木湯匙,認真的嗎?

此致

Mandragor59

***** 沒有問題,只有挑戰 *****

感謝你這個帶點諷刺的讚美。:wink:

已經試過了。很遺憾,QTS 在嘗試載入包含太多值的依賴鍵時會卡住。

沒錯,你懂這個梗吧?再說,你之前有機會提出更好的建議:grin:

我一直在考慮加入對 QTS 5.2.0 及以後版本的支援,讓 RunLast 等待 QTS QPKG 初始化程序結束。當它結束時,就假設所有 QPKG 都已啟動,然後執行使用者腳本。

我會做一些測試看看這個方法有多可靠。也許 RunLast 可以繼續維護?

請務必做!絕對要做!無論如何!大家一定會很感激你的!

… 或許你可以考慮讓你的「描述」不要那麼負面,並且不要一開始就要求卸載!也許你可以加個註釋,說明在 QTS 5.2.0 或更高版本,目前必須考慮啟動腳本中所需 QPKG 的相依性。

***** 沒有問題,只有挑戰 *****

嗯,其實不太算。我作為業餘廚師,唯一能想到的木湯匙的典故就是它塞不進我的嘴裡。也許你能為年長的德國用戶解釋一下。如果再問一次,我寧願選擇一枚刻有“最後一名”字樣的獎牌或冠軍獎盃。:sunglasses:

我喜歡一開始就把期望值設得很低。:grimacing:

主帖裡已經有相關說明了。

在許多國家(像我所在的運動文化濃厚的國家),「木湯匙獎」是頒給每年最後一名的運動隊伍的。這並不是真正的獎項。 :wink:

RunLast 現已可透過 sherpa 用於 QTS 5.2.0 及更高版本。:nerd_face:

我很快會將更新版本(250707)提交到 MyQNAP 儲存庫。

抱歉挖這麼舊的(有點舊)討論串,但我想問一下,用你的應用程式,能不能做到我想做的事情 lol。

我在我的 QNAP 上從 github 裝了 mktorrent。

現在,我想要在每次重啟時執行 make 指令,因為這個程式不是持久化的。

請問用這個工具有辦法做到嗎?因為我每次嘗試都會出現「make - command not found」的錯誤訊息。我已經透過 opkg 安裝了 make,而且它可以正常運作。

我還要補充一下,我對腳本很新手,想用 bash 來做這件事。如果有更好的替代方案,我也很樂意聽聽。

非常感謝任何協助。

@DLS4BZ,歡迎來到論壇。:slight_smile:

如果你的腳本使用了透過 Entware(和 opkg)安裝的套件,建議使用 Entware 的啟動系統來啟動你的腳本,而不是用 RunLast。你想要的功能可以用 RunLast 實現,但用 Entware 可能會更好。

請將你的可執行啟動腳本放在 /opt/etc/init.d/ 目錄下,並確保腳本檔名以大寫 ‘S’ 開頭。這樣你的腳本就會在 Entware 啟動後自動執行。

謝謝你的幫助,終於成功了!