我有一台具有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终端后,甚至重启服务器后,我也希望此命令连续运行。我曾经
screen
和nohup
。这些选项将不是解决方案,因为如果重新启动服务器,它将无法运行。我怎么做?使用一些脚本?,我对该领域有点陌生,请帮助我。
提前致谢 :)
更新:即使在ssh终端中,以上命令也可以正常使用,但是在一段时间后会自动以
^C
结尾。请帮我。 最佳答案
如果作业需要在系统重新引导后恢复,则它是一项系统服务。因此,您有几种选择:
编写一个初始化脚本并将其添加到默认运行级别。
如果您的发行版使用systemd
编写一个配置文件以将命令作为服务启动。
您可以使用另一个服务管理器(例如supervisord
)来自动运行命令。
定制快速而肮脏的解决方案。当我需要某些东西可以在screen
中自动运行时,我经常使用这样的cron
条目:
@reboot屏幕-S my_service -d -m bash -c'my_command'> / dev / null
重新启动时,它将在屏幕上启动您的命令并分离。