Linux

嘗試使用 systemd 將輸出發送到帶有 tee 的日誌文件,但未創建日誌文件?

  • May 18, 2019

我想通過執行節點應用程序systemd並將其輸出發送到標準輸出和日誌文件。節點應用程序位於名為的文件夾中www/www.appname.com,我希望將日誌文件保存在www/log.appname.com. 我servicename定義了以下服務:

[Service]
ExecStart=/usr/bin/node server | tee -a ../log.appname.com/appname.service.log
KillMode=process
Restart=always
RestartSec=20
WorkingDirectory=/home/username/www/www.appname.com

[Install]
WantedBy=default.target

但是當我執行我的服務時,例如

systemctl --user restart servicename

然後文件夾www/log.appname.com保持空白,所以我在 ? 中使用的路徑名可能有問題tee

不直接支持 Shell 命令行。如果要使用 shell 命令行,則需要將它們顯式傳遞給某種 shell 實現。例子:

ExecStart=sh -c ‘dmesg | 廁所’

所以嘗試類似的東西

ExecStart=sh -c '/usr/bin/node server | tee -a ../log.appname.com/appname.service.log'

引用自:https://serverfault.com/questions/967842