2015-06-25 2 views
-3

Я новичок в Perl и я использую Windows, машинаВыполнить скрипт на языке Perl непрерывно

Ну я использую PHP, а также Perl .. Мой полный веб-приложение было написано в PHP. Я написал скрипт Perl для взаимодействия с БД каждые 20 минут. Мой скрипт 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 

Мои вопросы -

  • Как запустить тот же скрипт Perl на моем Linux-сервере.
  • Как выполнить команду?
  • Если я закрою командную строку perl в окнах, сценарий будет остановлен.
    Как остановить тот же скрипт в Linux-сервере?
+2

Все это легко найти. Вы пробовали вещи и сталкивались с проблемами? –

+1

Не используйте прототипы для своих подпрограмм Perl - 'sub Process1()' должен быть просто 'sub process1'; не вызывать подпрограммы Perl с использованием амперсанда - '& Process1()' должен быть 'process1()'; и не используйте заглавные буквы в именах лексических переменных - '$ DBH' должен быть' $ dbh' – Borodin

+0

Что-то называемое 'crontab', если вы этого не слышали. – Alex

ответ

1

ИМХО, лучший способ сделать это, чтобы написать PERL код, как простой «один выстрел» лечения, и зависят от свойств, предоставляемых системой, чтобы запустить его повторно:

  • Запланированные задачи на Windows,
  • Crontab на Linux
+0

Вы также можете запустить его как демон с помощью [supervisor.d] (http://supervisord.org/). – simbabque

0

Это может помочь, если вы не нашли их в Интернете.

Чтобы запустить скрипт в Linux perl "path"/script.pl. Для непрерывного запуска сценария в linux либо используйте crontab, либо запустите сценарий через сценарий оболочки и запустите его.

И остановить скрипт в Linux найти и убить процесс, используя команду ps -ef|grep script.pl и kill -9 "process_id" соответственно.

+1

'pkill script.pl' или' pkill -9 script.pl', вероятно, проще остановить его. – DeVadder

+0

kill -9 должно быть последним. Он предотвращает сбор и очистку мусора, что в конечном итоге приводит к снижению производительности хоста. –

Смежные вопросы