我有一台具有Bluehost(fedora OS)的VPS服务器,我想通过TCP从远程应用程序捕获数据,并将其写入文件中以进行进一步处理。所以我为此使用netcat

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


通过在ssh中使用上述命令,Netcat侦听特定端口并将捕获的数据写入到名为data.xml的文件中。

问题:即使关闭ssh终端后,甚至重启服务器后,我也希望此命令连续运行。我曾经screennohup。这些选项将不是解决方案,因为如果重新启动服务器,它将无法运行。

我怎么做?使用一些脚本?,我对该领域有点陌生,请帮助我。

提前致谢 :)

更新:即使在ssh终端中,以上命令也可以正常使用,但是在一段时间后会自动以^C结尾。请帮我。

最佳答案

如果作业需要在系统重新引导后恢复,则它是一项系统服务。因此,您有几种选择:


编写一个初始化脚本并将其添加到默认运行级别。
如果您的发行版使用systemd编写一个配置文件以将命令作为服务启动。
您可以使用另一个服务管理器(例如supervisord)来自动运行命令。
定制快速而肮脏的解决方案。当我需要某些东西可以在screen中自动运行时,我经常使用这样的cron条目:

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


重新启动时,它将在屏幕上启动您的命令并分离。

09-30 13:07
查看更多