Systemd
systemd:如何將標準輸出重定向到日誌文件
我有一個系統服務:
[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/Error
systemd 指令不支持附加到文件。如果您想在服務重新啟動之間維護文件日誌並只是將新的記錄行附加到它,請改用:
[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=
。