Systemd

systemd:如何將標準輸出重定向到日誌文件

  • September 9, 2020

我有一個系統服務:

[Unit]
Description=My application

[Service]
ExecStart=/bin/java myapp.jar
Type=simple
User=photo

有一個選項:**StandardOutput=**但我不明白如何使用它來寫入文件。 https://www.freedesktop.org/software/systemd/man/systemd.exec.html

我期待在此處放置一個文件路徑,但文件討論了套接字和文件描述符。似乎它需要更多的配置而不僅僅是那個關鍵字。

文件路徑放在哪裡? 我找不到任何這種用途的例子

謝謝

採用:

[Unit]
Description=My application

[Service]
ExecStart=/usr/bin/java -jar myapp.jar
Type=simple
User=photo
StandardOutput=file:/var/log/logfile

如此處所述:https ://www.freedesktop.org/software/systemd/man/systemd.exec.html#StandardOutput=

請注意,這種方式日誌文件內容將在每次服務重新啟動時被覆蓋。StandardOutput/Errorsystemd 指令不支持附加到文件。

如果您想在服務重新啟動之間維護文件日誌並只是將新的記錄行附加到它,請改用:

[Unit]
Description=My application

[Service]
ExecStart=/usr/bin/sh -c 'exec /usr/bin/java -jar myapp.jar'
Type=simple
User=photo

exec``/bin/java表示在設置重定向而不分叉後,shell 程序將被替換為程序。/bin/java所以跟直接跑之後不會有什麼區別ExecStart=

引用自:https://unix.stackexchange.com/questions/408929