Upstart
nc 作為新貴作業執行時,在連接時立即退出
我正在使用以下
/etc/init/jsonlog.conf
新貴工作:description "jsonlog" start on runlevel [23] stop on runlevel [06] respawn script cd /tmp echo "about to listen" /bin/nc -l 3333 echo "finished listening" end script post-stop script sleep 1 end script
問題是
nc
每次客戶端連接時都會立即退出。所需的行為是所有接收到的數據(即 utf8 json)都應該以
/var/log/upstart/jsonlog.log
. 此伺服器正在執行 Ubuntu 12.04LTS。
nc
從 bash shell 執行時,該命令可以正常工作。我假設這與
stdin
. 我試過使用一個-q -1
選項,但它沒有幫助。PS 我很好,這一次只會聽一個客戶。
nc
我看到你的命令有兩件事出了問題。您正在nc
以一種用於雙向通信的方式呼叫,並期望它執行單向通信。
-d
標誌可以停止nc
讀取,這stdin
將使它執行看起來您正在嘗試執行的單向通信。另一個問題是
nc -l
預設情況下只服務一個連接然後終止。您可以使用該-k
標誌來更改該行為。在所有命令中,因此變為:
nc -dkl 3333
但是,您似乎正在使用不是為這項工作設計的工具。
nc
我建議您使用 syslog 協議和設計用於該協議的記錄器,而不是使用。