2011-05-12 291 views
2

如何在運行時更改syslog守護程序的日誌路徑?我的目標是旋轉日誌文件的每個文件大小或日期,但我沒有QNX/POSIX中的logrotate。更改系統日誌日誌路徑

我只是做一個編輯,希望syslogd每次都檢查.conf文件,還是有其他的解決方法嗎?謝謝。

說明:必須在C或C++中完成,而不是在腳本和控制檯命令行中完成端口問題。

回答

1

基於web上找到的一些解決方案的答案,也基於@bills的答案,修改以適應QNX環境。

執行系統調用slay syslogd並執行編輯syslog.conf和再次系統調用syslogd

QNX不提供logrotate,否則除了上面的答案,安裝第三方日誌記錄是另一種解決方法,但不符合我的目的。

更新:經過一番挖掘,QNX在Neutrino操作系統中提供了一種叫做slogger的替代方案。我將投票作爲答案,因爲它是迎合QNX系統

+2

既然你是新手,這裏有一些提示:投票了比爾的答案 - 它引導你的解決方案。可選 - 考慮接受他的答案並將解決方案的詳細信息作爲編輯添加到答案中。 (這可能是主觀意見)。最後,如果您參考網絡上的其他解決方案,請鏈接到它們。 (所有這些咆哮不是一個批評,只是指針...) – Unreason 2011-05-16 08:31:21

+1

好吧,點了 – freonix 2011-05-18 08:47:56

2

找到syslogd的pid。比方說,它是123.然後,在你完成你的編輯, 在命令行中鍵入下列操作之一後:

kill -HUP 123 
kill -1 123 
+0

謝謝,但我正在尋找的東西,可以在我的代碼在運行時執行 – freonix 2011-05-13 02:03:07

+0

你可以使用'kill(2)'系統調用,或者使用'system(3)'。沒有辦法將信號發送到syslogd或重新啓動它。 – 2011-05-13 02:30:28

+0

我想比爾想讓我在重新啓動PID後重新啓動它? – freonix 2011-05-13 03:05:32

0

聲音對我說你最好的移植newsyslog您的平臺幫助。

+0

非常感謝,但是又一次尋找執行內部代碼的解決方案。對不起,如果我以前沒有明確澄清。 – freonix 2011-05-13 02:04:39