Portál AbcLinuxu, 12. července 2025 23:17


Dotaz: Perl,restart

12.11.2009 20:26 TAPSOFT
Perl,restart
Přečteno: 323×
Odpovědět | Admin
Ještě jednu radu prosím.Chodím robotem na chat pomocí brány lidegw.py.Robot je v pl.Chtěl bych ale bota vždy odhlásit z místnosti.To znamená ukončit uplně robot.pl a znova nastartovat.V případě dalších přesných informací hned odpovím.děkuji
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

13.11.2009 06:58 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Perl,restart
Odpovědět | | Sbalit | Link | Blokovat | Admin
restart by spíš potřeboval ten dotaz :)
In Ada the typical infinite loop would normally be terminated by detonation.
13.11.2009 07:12 TAPSOFT
Rozbalit Rozbalit vše Re: Perl,restart
Odpovědět | | Sbalit | Link | Blokovat | Admin

Tak sputím bráni lidegw

Spustím robot.pl

Robot se přihlásí do místnosti a dělá svojí funkci

Aby ale odešel musím v roboti použít příkaz $self->quit("ukonceno");

Potřebuji ale udělat aby se znova vrátil, tzn. znova pustil robot.pl

děkuji
13.11.2009 07:20 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Perl,restart
spouštějte to ve smyčce

while :; do robot.pl; sleep 10; done
In Ada the typical infinite loop would normally be terminated by detonation.
13.11.2009 08:16 TAPSOFT
Rozbalit Rozbalit vše Re: Perl,restart
Je to trochu obtížné vysvětlit.Musel bych vám vypsat zdroják.Prostě potřebuji robot.pl natvrdo ukončit a za pár sekund znova spustit aby se vše načetlo od znova.Lidegw je jakási brána na lidé.cz a ta může být puštěná furt.
13.11.2009 09:41 ph0enix | skóre: 18 | Praha
Rozbalit Rozbalit vše Re: Perl,restart

Tak zkus ten kod nekde vystavit. Nebo to alespon popsat krapet obsirneji. Treba ti nekdo navrhne jine pouzitelne reseni.

13.11.2009 10:09 TAPSOFT
Rozbalit Rozbalit vše Re: Perl,restart

Dobře tedy,robot má přes 4500 řádku,vypisovat celej ho nemá cenu,ale..

mám složku ROBOT a v ní robot.pl a dalších asi 38 txt souboru k tomu duležitých

Je potřeba aby se robot.pl ukončil,což dělám tím příkazem quit ale tím se pouze ukončí a opustí místnost,ale znova se už program nespustí.Je potřeba ho samočinně znova pustit.Toto potřebuji využít,protože program neběží a chci ho ovládat na dálku

Ruža Becelin avatar 13.11.2009 10:15 Ruža Becelin | skóre: 40 | blog: RuzaBecelinBlog
Rozbalit Rozbalit vše Re: Perl,restart
Nevim, proc by nemelo fungovat reseni od pht. Jinak opetovny start lze zaridit i CRONen, pokud to staci reknem jednou za minutu. Dalsi alternativa je uprava kody robot.pl, aby pri ukonceni spustil dalsi instanci sama sebe...
13.11.2009 10:49 TAPSOFT
Rozbalit Rozbalit vše Re: Perl,restart

if ($arg =~ /!vypni/i) { if ($spravci{$nick} ne "spravci") { $self->privmsg($nick, ":Odvolat mě může jen :55437: Vyšší správce"); }else{ $self->privmsg($kanal, '----Byl jsem odvolán :37893: ---- '); open(DATA, "robot.pl"); $self->quit("ukonceno"); }}

ted ukončuji takto,po příkazu do šeptu !vypni se robot ukončí

13.11.2009 10:50 TAPSOFT
Rozbalit Rozbalit vše Re: Perl,restart

if ($arg =~ /!vypni/i) {
if ($spravci{$nick} ne "spravci") {
$self->privmsg($nick, ":Odvolat mě může jen  :55437: Vyšší správce");
}else{
$self->privmsg($kanal, '----Byl jsem odvolán :37893: ---- ');
open(DATA, "robot.pl");
$self->quit("ukonceno");
}}

13.11.2009 13:04 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Perl,restart
Nevim, proc by nemelo fungovat reseni od pht.
Já to taky nechápu, a zdá se že tazatel pro změnu nechápe to řešení...

Prostě když ten váš skript skončí z jakého koliv důvodu tak ta smyčka ho za 10 sekund pustí znova. Je to to co chcete?
In Ada the typical infinite loop would normally be terminated by detonation.
13.11.2009 13:10 TAPSOFT
Rozbalit Rozbalit vše Re: Perl,restart
ano přesně to potřebuji,jen mě to stále nejde spustit.Někde tam mám chybu.Nevíte jak to přesně do programu napsat?
13.11.2009 14:48 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: Perl,restart
možné chyby: - má robot.pl spustiteľné práva? - máte aktuálny adresár v ceste?

riešenie: spustite to cez interpreter: /usr/bin/perl robot.pl
13.11.2009 14:54 sdsdsd
Rozbalit Rozbalit vše Re: Perl,restart

robot.pl začíná

use locale;
use strict;
use Net::FTP;
use Net::IRC;
use Socket;
use LWP::UserAgent;
use Sys::Hostname;
use LWP;
use LWP::Simple;
use Net::POP3;

pak proměnné,příkazy,časovač na udržení na chatu a td

 

složka robota

na disku c:/robot/

robot.pl - samostný robo

lidegw.py - brána na servr

...textové soubory

---------------------------------

Na to aby se robot z chatu odhlásil,je opravdu potřeba robot.pl uzavřít.To mě funguje příkazem který jsem už psal nahoře.

Ale aby se vrátil,tzn znova se spustil robot.pl neudělám příkazem sleep

13.11.2009 15:18 myšák | skóre: 26 | blog: EmentuX | Ostrava
Rozbalit Rozbalit vše Re: Perl,restart
No jak tak vidím to C:\robot v odpovědi níže, tak bych řekl, že problém je v rozdílech mezi BASHem a příkazovým interpreterem v onom M$ systému neboli v tom, že odpověď od pht tak nějak vcelku logicky počítá s tím, že ten PERLový skript běží na Linuxu...
Je nesmírně těžké být idiotem, konkurence je obrovská...
13.11.2009 16:14 sdsdsd
Rozbalit Rozbalit vše Re: Perl,restart
běží na windows XP,mám Python 2.5-to je pro lidegw které je v pythonu
14.11.2009 11:47 moira | skóre: 30 | blog: nesmysly
Rozbalit Rozbalit vše Re: Perl,restart
A proč nepoužiješ jednoduchou smyčku v nějakém .cmd skriptu?
:opakuj
c:\robot\robot.pl
goto opakuj
samozřejmě za předpokladu, že přípona .pl je asiociovaná na interpret perlu.
Překladač ti nikdy neřekne: "budeme kamarádi"

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.