Autor Thema: Starten von Linux-Programmen  (Gelesen 1585 mal)

Offline pallas

  • Junior Mitglied
  • **
  • Beiträge: 91
  • Geschlecht: Männlich
Starten von Linux-Programmen
« am: 19.05.06 - 09:36:18 »
Hallo,

gibt es eine Möglichkeit von LS aus Programme auf meinen Linux-Server zu starten?
Ich habe Domino 6.5.4 auf SLES installiert und möchte gerne mit LS ein Programm (Perl-Skript) starten.

Im Voraus schon mal vielen Dank für Eure Hilfe

Gruß Thorsten

Glombi

  • Gast
Re: Starten von Linux-Programmen
« Antwort #1 am: 19.05.06 - 09:47:34 »
Dazu gibt es Shell oder ShellID in Script

Andreas

Offline pallas

  • Junior Mitglied
  • **
  • Beiträge: 91
  • Geschlecht: Männlich
Re: Starten von Linux-Programmen
« Antwort #2 am: 19.05.06 - 10:07:36 »
Hallo Andreas,

danke für die schnelle Hilfe.

In der Online-Hilfe hab ich folgenden Satz gefunden.
"In a Unix or AIX environment LotusScript will resume execution of the script only after the programm has completed."

Weißt Du ob das auch auf die Linuxvariante zutrifft?

Gruß Thorsten

Glombi

  • Gast
Re: Starten von Linux-Programmen
« Antwort #3 am: 19.05.06 - 10:11:55 »
Den Satz finde ich in meiner Designer Hilfe nicht  ???

Bei mir steht:

Zitat
After Shell starts a program, LotusScript continues to execute the script without waiting to make sure the program has completed. You cannot be sure that a program started by Shell has finished running before the rest of your script is executed.

Und so kenne ich es auch.

Andreas

Offline pallas

  • Junior Mitglied
  • **
  • Beiträge: 91
  • Geschlecht: Männlich
Re: Starten von Linux-Programmen
« Antwort #4 am: 19.05.06 - 10:25:05 »
Hallo Andreas,

den Satz hab ich auch, aber bei "Shellid". Mein Zitat stammt aus der Beschreibung der Funktion "Shell".

Gruß Thorsten

Glombi

  • Gast
Re: Starten von Linux-Programmen
« Antwort #5 am: 19.05.06 - 10:33:44 »
Bei mir gibts keinen Unterschied zwischen Shell und ShellID.

Offline pallas

  • Junior Mitglied
  • **
  • Beiträge: 91
  • Geschlecht: Männlich
Re: Starten von Linux-Programmen
« Antwort #6 am: 19.05.06 - 10:43:48 »
Ich hab folgende Einträge:

Bei Shell:
Usage
Shell must be called from within an expression or an assignment statement, so that its return value is used.
In a UNIX or AIX environment, LotusScript will resume execution of the script only after the program has completed. 
In other environments, after Shell starts a program, LotusScript continues to execute the script without waiting to make sure the program has completed. You cannot be sure that a program started by Shell has finished running before the rest of your script is executed.

Bei ShellID:
Usage
Shellid must be called from within an expression or an assignment statement, so that its return value is used.
After Shellid starts a program, LotusScript continues to execute the script without waiting to make sure the program has completed. You cannot be sure that a program started by Shellid has finished running before the rest of your script is executed.
ShellID is a restricted operation - make sure you have set runtime security level 2 or higher "Allow restricted operations".
This feature will spawn processes which may outlive the spawning process.
The  "ID" returned from the function is so that you can terminate the program at a later time. If you don't want this behavior, use Shell.

Offline smoki

  • Senior Mitglied
  • ****
  • Beiträge: 325
  • Geschlecht: Männlich
    • Smoki's Lotus Notes
Re: Starten von Linux-Programmen
« Antwort #7 am: 19.05.06 - 19:01:59 »
Ich habe zwar kein Domino auf Linux oder nen Unix, aber es ist logisch, dass hier der "Shell" sich unterscheided auf beiden Betriebssystemen:

Auf Windows wird es vermutlich mit dem API-Befehl "Shell", der den Befehl "CreateProcess" aufruft, der angegebene String als Anwendung gestartet. Hierbei setzt Windows automatisch einen neuen Prozess auf, der unabhänig vom Vorgänger ausgeführt wird (Fehlende Hierachieverwaltung unter Windows...)

Unter Linux, wird vermutlich einer der "exec()"-Syscalls aufgerufen, der nicht automatisch in einem eigenen Prozess gestartet wird. Um einen neuen Prozess auszuführen wird zusätzlich noch "fork()" benötigt!

Vielleicht läuft "shellID" unter Unix wirklich anders? Da nur eine neue Prozess-ID bei einem Fork erzeugt wird?! (Oder wenn nicht, wird nur die ID des aktuellen Prozesses zurückgegeben...)

Wenn es damit nicht geht, funktioniert ggf. folgendes:

Shell("/usr/bin/perl /path/to/script.pl &")

Oder falls hier keine "normale" shell dahinterliegt, dass vielleicht es so läuft:

Shell(|/usr/bin/bash "/path/to/script.pl &"|)

Wenn nicht, versuch auch mal das & hinter dem letzten Anführungszeichen?!

Bitte gib feedback, was und obs funktioniert! Danke!

Ich wünsche ein schönes Wochenende!
Chris


 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz