我是Perl的新手,我使用的是Windows机器
我正在使用PHP以及Perl ..我的完整Web应用程序是用PHP编写的。我每20分钟为DB交互编写一个Perl脚本。我的Perl脚本是这样的。
use strict;
use warnings;
sub Process1()
{
use DBI;
use Date::Format;
my $DBH=DBI->connect("DBI:mysql:dbname:localhost","root","");
my $sth=$DBH->prepare("UPDATE tablename SET column1='blah'"); #update query
$sth->execute();
while (my @row=$sth->fetchrow_array)
{
print $row[0] . "\n";
}
}
while(1) {
&Process1();
sleep 900;
}
如果我必须运行我的perl脚本,我只需打开Perl Commad行并执行命令
perl C:xampp\htdocs\samplescript.pl
我的问题是 -
答案 0 :(得分:1)
恕我直言,最好的方法是将你的perl代码写成一个简单的" one-shot"处理,并依靠系统提供的功能重复运行:
答案 1 :(得分:1)
如何在Linux服务器中运行相同的Perl脚本?
有几种方法可以在linux上执行perl脚本。
您需要使用口译员执行脚本。在大多数情况下,您使用:
/usr/bin/env perl /Path/To/Your/script.pl
或者
/usr/bin/perl /Path/To/Your/script.pl
至少有一种更好的方式:
将解释器路径定义到脚本的第一行。
#!/usr/bin/env perl
use strict;
use warnings;
sub Process1()
{
use DBI;
use Date::Format;
my $DBH=DBI->connect("DBI:mysql:dbname:localhost","root","");
my $sth=$DBH->prepare("UPDATE tablename SET column1='blah'"); #update query
$sth->execute();
while (my @row=$sth->fetchrow_array)
{
print $row[0] . "\n";
}
}
while(1) {
&Process1();
sleep 900;
}
然后您可以使用以下命令执行脚本:
/path/to/your/script.pl
如何执行命令?
您可以在Linux终端上执行相同的命令吗?
如果我在Windows中关闭perl命令行,脚本将停止。 如何在linux服务器上停止相同的脚本?
您可以使用linux“kill”命令。如果您在后台运行它。如果您关闭终端会话或按strg + c,脚本也将停止。
您还可以查看此模块并构建自己的Perl命令以停止脚本。
我的提示
守护您的脚本并插入一些命令来处理脚本。所以它可以在后台运行。
答案 2 :(得分:0)
如果您没有在网上找到它们,这可能有所帮助。
在Linux perl "path"/script.pl
中运行脚本。要在linux中连续运行脚本,请使用crontab或通过shell脚本运行脚本并运行它。
要在Linux中停止脚本,请分别使用ps -ef|grep script.pl
命令和kill -9 "process_id"
查找并终止该过程。