另外,.container內容若是太多怕太混淆,能不能分檔案管理?能。以a2a-batch為例:
位在.config/containers/systemd下(其它像.network、.volume等也一併適用,統稱quadlet檔)
a2a-batch.container
a2a-batch.container.d/
└── environment.conf
需有個a2a-batch.container,再以它為名並尾綴.d建立子目錄,Podman Quadlet會先載入a2a-batch.container內容,後來發現有a2a-batch.container.d子目錄,連同子目錄下所有檔案也一併載入,檔名名稱沒特定規定,別弄什麼特殊字元應該OK。
所以反過來說,沒有a2a-batch.container這個檔案存在,a2a-batch.container.d這個子目錄所有檔案就不會被Podman Quadlet吃進去。
這樣一來,就算像是a2a-batch.container、a2a-ftp.volume是空檔,只要有檔名,檔名尾綴.d的子目錄也會被Podman Quadlet吃進去,這有在實機驗證過。
這篇文章份量好少,其實可以併到昨天的內容。
以下是補充systemctl及podman常用操作指令:
systemctl --user [start|stop|staus|restart|cat] ServiceName
例:(.service檔可以省略)
$ systemctl --user status a2a-batch.service
$ systemctl --user status a2a-ftp-volume.service
$ systemctl --user status a2a-*.service # 可以用萬用字元一次操作多個服務
而裡面的cat指令則是印出/run/user/<uid>/systemd/generator下的.service檔的內容。
podman quadlet [install|list|print|rm] QuadletFile
除了list指令不用指定QuadletFile參數之外。
[appuser~]$ podman quadlet rm a2a-ftp.volume
Error: unable to remove Quadlet a2a-ftp.volume: quadlet a2a-ftp.volume is running and force is not set, refusing to remove
Error: some quadlets could not be removed
[appuser~]$ systemctl --user stop a2a-ftp-volume
[appuser~]$ podman quadlet rm a2a-ftp.volume
a2a-ftp.volume
執行後,a2a-ftp.volume檔會被刪除,但a2a-ftp.volume.d子目錄及內容不會被刪。
既然a2a-ftp.volume.d的檔案還在,我就直touch一個空檔做install
[appuser~]$ touch a2a-ftp.volume
[appuser~]$ podman quadlet install a2a-ftp.volume
/home/appuser/.config/containers/systemd/a2a-ftp.volume
[appuser~]$ systemctl --user daemon-reload
[appuser~]$ systemctl --user start a2a-ftp-volume
[appuser~]$ systemctl --user status a2a-ftp-volume
● a2a-ftp-volume.service
Loaded: loaded (/home/appuser/.config/containers/systemd/a2a-ftp.volume; generated)
Active: active (exited) since Sun 2026-08-16 18:40:57 CST; 5s ago
最後用pomdan quadlet print a2a-ftp.volume的內容,得到的是空的。pomdan quadlet print不會印出Quadlet檔名尾綴.d子目錄下的檔案內容。
所以pomdan quadlet print是印quadlet檔,如.container、.network、.volume等。而systemctl --user cat是印.service的內容。
另外用podman quadlet的rm和install要小心,像a2a-batch有在.container檔設定Volume連結到a2a-ftp.volume,一但停止服務(systemctl --user stop a2a-ftp-volume),a2a-batch就會跟著停掉。就算a2a-ftp服務啟動而a2a-batch.container檔的Restart參數設為always,也無法自動重啟,完全需手動啟動。