2026年7月2日 星期四

Linux nq 筆記

nq 說明
Linux 輕量、無需設定的命令列任務佇列工具
完全依賴檔案系統鎖(File-system lock)來管理佇列,不需要任何額外的設定或維護。

Debian 安裝
apt install nq

nq 環境變數
NQDIR:存放任務佇列目錄。預設為目前的執行目錄,透過 NQDIR 設定不同的路徑,可以同時管理多個佇列。
NQJOBID:nq 回傳給執行中任務的 Job ID,可用於腳本中追蹤。

使用範例
建立專屬 nq 佇列
export NQDIR="$HOME/nq"; mkdir -p ${NQDIR}

執行方式
export NQDIR="$HOME/nq"
nq ./my-script.sh
nq ./my-script2.sh
nq ./my-script3.sh
nq ./my-script4.sh
nq ./my-script5.sh

查詢目前 nq 佇列 Job
ls -lF ${NQDIR}   ## Ctrl-C 離開不中斷執行

查詢結果說明
-rw-r--r-- 1 root root 47 Jul  2 10:38 ,19f20aeff65.125177   已執行完畢
-rwxr--r-- 1 root root 22 Jul  2 10:38 ,19f20af01e5.125180*  <-* 表示目前正在執行
-rw-r--r-- 1 root root 20 Jul  2 10:38 ,19f20b17894.125225   未執行
-rw-r--r-- 1 root root 20 Jul  2 10:38 ,19f20b17bb4.125228   未執行
-rw-r--r-- 1 root root 20 Jul  2 10:38 ,19f20b17dc3.125231   未執行

,19f20af01e5.125180  <- ,開頭為 nq 狀態檔案,19f20af01e5 Job 送出時間,125180 系統執行的 process id

刪除 nq 佇列 Job ,19f20b17dc3.125231
rm ${NQDIR}/,19f20b17dc3.125231

中斷 nq 佇列 Job ,19f20b17dc3.125231
kill 125231

查詢 nq 佇列 Job ,19f20b17dc3.125231 執行內容或結果
cat  ${NQDIR}/,19f20b17dc3.125231

刪除已執行完畢 nq 佇列Job ,19f20b17dc3.125231
rm ${NQDIR}/,19f20b17dc3.125231

查詢目前  Job 執行狀態
nqtail  # Ctrl-C  離開,不中斷程式

共用 nq 佇列
nqdir=/var/spool/nq
nqgroup=nqusers
mkdir -p ${nqdir}
chown :${nqgrou} ${nqdir}
chmod 2775 ${nqdir}

更多的 指令說明
man nq
man nqtail

沒有留言: