gpt4 book ai didi

linux - 连续在 AWS EC2 linux AMI 上运行 perl 脚本

转载 作者:太空狗 更新时间:2023-10-29 12:32:08 24 4
gpt4 key购买 nike

我已经使用各种代码片段构建了一个系统

  1. 监听传入 TCP 数据的端口(使用 perl 脚本),将此数据写入日志文件。
  2. 调用并运行 PHP 脚本以使用日志文件并将其写入 RDS MySQL 数据库

我有一个 GPS 设备配置为将数据发送到我的 AWS EC2 服务器的弹性 IP

它工作正常,当我通过 SSH 运行时

perl portlistener.pl

它做得很好,工作愉快。

我可以停止脚本运行的唯一方法是关闭终端窗口,结束我的 SSH session 。我需要做的是让它始终保持运行,并实现启动、停止和重启功能。我需要创建一个守护进程吗?

我了解 PHP,但直到现在还从未使用过 Perl。我也不太熟悉命令行,除了安装更新、导航和编辑单个文件等。

在此先感谢您的帮助,或为我指明正确的方向。

最佳答案

我想已经解决了!

已安装 CPAN http://www.thegeekstuff.com/2008/09/how-to-install-perl-modules-manually-and-using-cpan-command/

使用 CPAN,安装 Deamon::Control

然后创建一个新程序如下(portlistener_launcher.pl),并以 SU 运行它。

#!/usr/bin/perl
use strict;
use warnings;
use Daemon::Control;

$ENV{PHP_FCGI_CHILDREN} = 10;
$ENV{PHP_FCGI_MAX_REQUESTS} = 1000;

Daemon::Control->new({
name => 'portlistener',
program => 'perl /home/ec2-user/portlistener/portlistener.pl',
fork => 2,
pid_file => '/var/run/portlistener.pid',
stdout_file => '/var/log/portlistener.log',
stderr_file => '/var/log/portlistener.log',

})->run;

可能有一种更简洁的方法,但它似乎有效,我可以像这样停止/启动它:

perl portlistener_launcher.pl start

关于linux - 连续在 AWS EC2 linux AMI 上运行 perl 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23568920/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com