2014-05-11 115 views
0

我有BlueHost的(fedora的OS)一個VPS服務器上運行在背景特定ssh命令爲24/7,我想通過TCP捕獲來自遠程應用程序的數據,並在同一寫到用於進一步處理的文件。所以我使用netcatVPS服務器

nc -l -k -v IP_ADDRESS_HERE 5331 > /home/user/public_html/tcp/data.xml 

通過在ssh使用上述指令時,Netcat偵聽到特定端口和到被叫data.xml文件中寫入一個捕獲的數據。

問題:即使在關閉ssh終端後,甚至在重新啓動服務器之後,我也希望此命令持續運行。我曾用screennohup。這些選項不會成爲解決方案,因爲如果服務器重新啓動,它將不會運行。

我該怎麼做?使用一些腳本?,我對這個領域有點新,請幫助我。

感謝提前:)

更新:即使在SSH終端,上面的命令可以完美運行,但自動一段時間後^C結束。請幫幫我。

回答

0

如果工作需要系統重新啓動後恢復,這是一個系統服務。所以你有幾個選擇:

  • 編寫一個初始化腳本,並將其添加到您的默認運行級別。
  • 如果你的發行版使用systemd寫一個配置文件來啓動命令的服務。
  • 您可以使用其他服務經理像supervisord自動運行命令。
  • 自定義快速和骯髒的解決方案。當我需要的東西,在screen自動運行,我經常使用cron條目是這樣的:

    @reboot屏幕-S my_service -d -m的bash -c 'my_command'>的/ dev/null的

重新啓動時,它將在屏幕上啓動您的命令並分離。

+0

謝謝你,你能不能幫我寫一個初始化腳本或systemd配置文件來運行這個簡單的命令?因爲我使用的是Fedora,我認爲Fedora支持上述兩種方法。 P.S:我對Linux真的很陌生。 – Nithi2023

+1

手冊頁很棒(systemd,systemd.unit和啓動)。 Arch Linux的具有出色的文檔,可以幫助您: https://wiki.archlinux.org/index.php/systemd#Writing_custom_.service_files – mdur

+0

現在,你有什麼阻止你自己寫的配置的信息? – Grapsus