Schrift
[thread]10745[/thread]

Dienste starten stoppen

Leser: 13


<< |< 1 2 3 >| >> 22 Einträge, 3 Seiten
3_cent
 2007-11-08 13:02
#102023 #102023
User since
2007-11-08
9 Artikel
BenutzerIn
[default_avatar]
Hallo,

bin neu hier im Forum, habe mich hier angemeldet da ich ein kleines Problem habe.

Ich muss ein CGI script erstellen, das mir meine vorhandenen Dienste ausgibt.
Dann muss ich einen Dienst auswählen können und dieser sollte gestartet oder gestoppt werden können. Das ganze sollte Grafisch in einer .html datei sein.

Danke für eure hilfe.

PS: Habe auch schon was programmiert bin auf dem gebiet nur ein völliger noob.

########## CODE für dienste.pl ##########

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
use Win32::Service;

Win32::Service::GetServices("", \%ServiceList); #Aktuelle Service in Hash Liste(%ServiceList)

while (($key, $value) = each %ServiceList) { # Durchgehen der Hash Liste + Spalten in Variablen packen
print "$key ($value)\n"; # ausgabe


Win32::Service::GetStatus("",$value, \%status);

print "Status: ";
print "$status{'CurrentState'} \n"; # Status wird in Zahlen angezeigt

if ($status{'CurrentState'} == 1) {
print "not running\n";}

if ($status{'CurrentState'} == 4) {
print "running\n";}
print "\n";
}


----
Modedit Gwendragon:
Bitte Code in Perl- oder Code-Tags stellen!
Siehe auch http://board.perl-community.de/helptags/
----
renee
 2007-11-08 13:14
#102026 #102026
User since
2003-08-04
14367 Artikel
ModeratorIn
[Homepage] [default_avatar]
und was funktioniert daran nicht? Fehlermeldungen?
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
3_cent
 2007-11-08 13:19
#102027 #102027
User since
2007-11-08
9 Artikel
BenutzerIn
[default_avatar]
Es funktioniert soweit alles nur das ich die Aufgabe nicht komplett habe und nicht weiss wie ich alle Dienste die momentan laufen in einem web browser ausgebe und dann auch noch starten und stoppen kann.

Also ich muss eine .html datei aufrufen die mir dann alle Dienste ausgibt und ich die Dienste dann stoppen und starten kann.
nepos
 2007-11-08 14:04
#102033 #102033
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Wo liegt das Problem? Rauszufinden, welche Dienste denn überhaupt laufen? Bzw. welche Dienste überhaupt vorhanden sind?
Wenn du die Infos schon hast, dann kannst du dein Skript eine entsprechende HTML-Seite erzeugen lassen, wo du dann z.B. Links einbaust, die dein CGI wiederum mit den entsprechenden Parametern zum Starten/Stoppen aufrufen.

Zum Erzeugen von HTML-Code und dem Verarbeiten der Parameter, die das CGI-Skript bekommt, kannst du CPAN:CGI benutzen. Oder du schaust dir CPAN:HTML::Template oder CPAN:HTML::Template::Compiled an. Damit kannst du dir das Bauen der HTML-Seiten vereinfachen.

Aber sag uns doch mal genau, wo du nicht weiter kommst.
3_cent
 2007-11-08 14:55
#102035 #102035
User since
2007-11-08
9 Artikel
BenutzerIn
[default_avatar]
Welche Dienste laufen habe ich ja schon rausgefunden

weiss nur nicht wie ich das mit der html datei mache und diese mit der .pl datei verbinde

nepos
 2007-11-08 15:01
#102036 #102036
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Du brauchst einen Webserver (IIS, Apache, lighthttpd, usw.). Dieser führt dein Perl-Skript aus, wobei das Perl-Skript als CGI-Skript läuft. Dieses Skript erzeugt dann dynamisch die entsprechenden HTML-Seiten. Eine feste HTML-Seite bringt dir ja nichts, da die anzuzeigenden Daten sich ja ändern können.
3_cent
 2007-11-08 15:23
#102038 #102038
User since
2007-11-08
9 Artikel
BenutzerIn
[default_avatar]
ok und wie würde ich jetzt meine dienste.pl so bearbeiten das mir das ding meine aufgabe erfüllt ? Also ich meine mir die dienste auf einem web browser anzeigt und ich einen dienst auswählen kann und diesen starten und stoppen kann ?
3_cent
 2007-11-15 10:44
#102432 #102432
User since
2007-11-08
9 Artikel
BenutzerIn
[default_avatar]
ok leute ich habe mich da nochmal dran gesetzt und folgendes ausgearbeitet:

###########NEUER CODE#############
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#!"C:\Perl\bin\perl.exe"

###############
# Dienste 1.0 #
###############


use Win32::Service;
use strict;
use CGI qw(:standard);


#print header;
#print start html('Dienste');
#print "<center>";
#print "[<a href=#general>General</a> |";
#print "<a href=#httpd>HTTPD/WWW</a> |";
#print "<a href=#free>Memory</a> |";
#print "<a href=#filesystem>File System</a> |";
#print "<a href=#users>Users</a> |";
#print "<a href=#processes>Processes</a>]";
#print "</center>";
#print end_html;


my $key;
my $value;
my %ServiceList;
my %status;
my $status;


Win32::Service::GetServices("", \%ServiceList); #Aktuelle Service in Hash Liste(%ServiceList) 

# Hautprogramm aufrufen
AuswahlMenue();
exit 0;



sub AuswahlMenue()
{
        my $auswahl;

        print header;
        print start_html('Dienste');    
        print "############ Auswahlmenue ############<br />";
        print "<br />";
        print "1. Aktive Dienste auslesen</a><br />";
        print "2. Gestoppte Dienste auslesen</a><br />";
        print "3. Dienst stoppen</a><br />";
        print "4. Dienste starten</a><br />";
        print "5. Skript beenden</a><br />";
        print "<br />";
        print "#####################################<br />";
        print "<br />";
        
        print "<FORM ACTION="/cgi-bin/test/cgi.cgi">";                                                  #
        print "Geben Sie Ihre Auswahl ein: <INPUT NAME="aauswahl"><br />";              #In diesem Teil gibt er mir ein Fehler aus,
        print "<INPUT TYPE="SUBMIT" VALUE="Abschicken!"><br />";                                #weiß jemand warum ?????????
        print "</FORM>"                                                                                                                 #
        print end_html;

        $auswahl = <STDIN>;
        chomp($auswahl);

        if($auswahl eq '1') { AktiveDiensteAuflisten(); }
        if($auswahl eq '2') { GestoppteDiensteAuflisten(); }
        if($auswahl eq '3') { DienstStoppen(); }
        if($auswahl eq '4') { DienstStarten(); }
        if($auswahl eq '5') { exit 0; }

}


sub AktiveDiensteAuflisten()
{       
        # Durchgehen der Hash Liste + Spalten in Variablen packen
        while (($key, $value) = each %ServiceList) 
        {       
                Win32::Service::GetStatus("", $value, \%status);
                
                if ($status{'CurrentState'} == 4) 
                {       
                        print "$key | $value\n";                                # Ausgabe
                        #print "$status{'CurrentState'} \n";    # Status wird in Zahlen angezeigt               
                        print "\n";
                }       
        }
}

sub GestoppteDiensteAuflisten()
{
        # Durchgehen der Hash Liste + Spalten in Variablen packen
        while (($key, $value) = each %ServiceList) 
        {       
                Win32::Service::GetStatus("", $value, \%status);
                
                if ($status{'CurrentState'} == 1) 
                {       
                        print "$key | $value\n";                                # Ausgabe
                        #print "$status{'CurrentState'} \n";    # Status wird in Zahlen angezeigt               
                        print "\n";
                }       
        }
}

sub DienstStoppen()
{
        my $returncode;
        my $dienstname;

        print "Name des zu stoppenden Dienstes eingeben:\n";
        print "-> ";
        $dienstname = <STDIN>;
        chomp($dienstname);

        Win32::Service::StopService("", $dienstname);
}

sub DienstStarten()
{
        my $returncode;
        my $dienstname;

        print "Name des zu startenden Dienstes eingeben:\n";
        print "-> ";
        $dienstname = <STDIN>;
        chomp($dienstname);

        Win32::Service::StartService("", $dienstname);
}



Kann mir jemand sagen wie ich das Program jetzt in einem Browser anzeigen kann das es so funktioniert (wie ohne cgi) in der Komando zeile???
Last edited: 2019-02-28 23:35:17 +0100 (CET)
3_cent
 2007-11-15 16:06
#102440 #102440
User since
2007-11-08
9 Artikel
BenutzerIn
[default_avatar]
heyyyyy kann mir den keiner helfen ????????????
Siechfred
 2007-11-15 16:39
#102442 #102442
User since
2007-11-12
30 Artikel
BenutzerIn
[default_avatar]
Bitte starte Dein Script in einer Webumgebung. Richte Dir dazu eine lokale Testumgebung ein, Perl hast Du ja schon. Daneben brauchst Du eine Serversoftware (google mal nach TinyWeb, das ist das simpelste, was es m.E. gibt). Starte die Serversoftware, starte Deinen Browser und gib in der Adressleiste "localhost/pfad_zu/script.pl" ein.

Viel Erfolg
Siechfred
<< |< 1 2 3 >| >> 22 Einträge, 3 Seiten



View all threads created 2007-11-08 13:02.