AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung [schon gelöst] Program für wine (Linux) erstellen bzw. weiter laufen lassen

[schon gelöst] Program für wine (Linux) erstellen bzw. weiter laufen lassen

Ein Thema von Schwedenbitter · begonnen am 18. Mai 2017 · letzter Beitrag vom 18. Mai 2017
Antwort Antwort
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#1

[schon gelöst] Program für wine (Linux) erstellen bzw. weiter laufen lassen

  Alt 18. Mai 2017, 17:57
Folgende Problemstellung treibt mich um:

Ich habe seit ca. 10 Jahren ein Client-Server-Gespann, wobei der Server auf einem Linux-Rechner in einer virtuellen Windows XP-VM läuft. Das ganze ist ein Windows-Programm mit einem Diese VM gibt es nur wegen des Server-Programms. Insbesondere aus Sicherheitsaspekten soll die VM plattgemacht und das Server-Programm mit wine laufen. Die Details würden den Rahmen hier sprengen - meinetwegen aber als PN...

Ich habe nun ein Gerüst gebastelt, was soweit in einer Linux-Konsole auch läuft. Es stört mich aber, dass dazu immer eine Anmeldung (am Rechner oder mit PuTTY) notwending ist. Sobald man sich abmeldet oder eben PuTTY schließt, läuft der Server nicht mehr. Ich habe auch diverse Anleitungen gelesen. Ein einfaches wine meine.exe & quit reicht jedenfalls nicht.

Wie kann man ein Programm (nur TSR?) erstellen, was unter wine im Hintergrund läuft?

Ich hoffe, das ist nicht zu OT und wenigstens in der richtigen Rubrik.

Gruß, Alex
Alex Winzer

Geändert von Schwedenbitter (18. Mai 2017 um 18:40 Uhr) Grund: als gelöst markiert
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
2.786 Beiträge
 
Delphi 2009 Professional
 
#2

AW: Program für wine (Linux) erstellen

  Alt 18. Mai 2017, 18:06
Anstatt Anwendungen mit & in den Hintergrund zu senden, kann man auch mit screen arbeiten. Jede screen Instanz läuft unabhängig, auch nach dem Abmelden. Mit einer Lazarus/Indy Serveranwendung unter Ubuntu auf einem Webhoster lief das stabil.

Zu screen gibt es viele Informationen und Anleitungen im Netz.
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#3

AW: Program für wine (Linux) erstellen

  Alt 18. Mai 2017, 18:39
Anstatt Anwendungen mit & in den Hintergrund zu senden, kann man auch mit screen arbeiten. Jede screen Instanz läuft unabhängig, auch nach dem Abmelden. Mit einer Lazarus/Indy Serveranwendung unter Ubuntu auf einem Webhoster lief das stabil.

Zu screen gibt es viele Informationen und Anleitungen im Netz.
Volltreffer!

Recht herzlichen Danke dafür. Du glaubst nicht, wie lange ich bei wine nach einer Lösung gesucht habe.

Die man-pages von screen finde ich ziemlich verwirrend. Ich habe es aber auch so geschafft. Leerzeichen muss man unter Linux meist explizit escapen, daher die Backslashes. Damit andere auch etwas davon haben, hier ein Beispiel-Aufruf. So oder so ähnlich müsste es dann bei Dir auch ausgesehen haben:
Code:
screen `wine /home/ein\ langer\ Pfad\meine.exe`
Alex Winzer
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.584 Beiträge
 
Delphi 5 Professional
 
#4

AW: [schon gelöst] Program für wine (Linux) erstellen bzw. weiter laufen lassen

  Alt 18. Mai 2017, 19:52
Unabhängig vom eigentlichen Problem: Die Backticks sind echt nicht totzukriegen, wa? Bitte verzichtet auf Backticks! Die Dinger haben nur Nachteile: sie lassen sich nicht schachteln und sie sind viel zu leicht mit einfachen Anführungszeichen zu verwechseln (oder man übersieht sie komplett), und deren Eingabe is auch ... naja.

Stattdessen bieten sich die viel einfacher zu tippenden normalen Shellklammern an. Nebenbei müssen Leerzeichen in einem Pfad nicht zwingend escaped werden, Anführungszeichen funktioneren genauso (einfache oder doppelte spielt keine Rolle, solange keine Variablen innerhalb benutzt werden). Diese beiden Dinge zusammengebracht und der Befehl kann so aussehen:
Code:
screen $(wine "/irgendein pfad mit leerzeichen/programm.exe")
. Das ließe sich sogar schachteln, wenn man es will oder braucht, hier ein Sinnlosbeispiel:
Code:
screen $(ls -l $(which eine.exe))
Viel lesbarer, oder?

Grüße
Dalai
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#5

AW: [schon gelöst] Program für wine (Linux) erstellen bzw. weiter laufen lassen

  Alt 18. Mai 2017, 21:23
<OT>
... Bitte verzichtet auf Backticks!
Alle andere ja, ich nicht. Ich editiere regelmäßig mit mc und dessen syntax highlight. Backticks haben den Charme, dass man wegen der schwarzen Markierung exakt sieht, wie lang ein Befehl ist und was genau drin steht.

Nebenbei müssen Leerzeichen in einem Pfad nicht zwingend escaped werden, Anführungszeichen funktioneren genauso (einfache oder doppelte spielt keine Rolle, solange keine Variablen innerhalb benutzt werden).
Ich habe keine Lust auf Streit und auch eigentlich überhaupt keine Zeit für sowas. Aber ich kann Dir - falls mir wieder welche über den Weg laufen - einige Befehle unter Linux per PM aufzeigen, bei denen das notwendig ist. Ich arbeite viel auf der Konsole unter openSUSE und da hat man mit <tab> immer escaped Leer- und Sonderzeichen drin. Warum sollte ich die nicht gleich nutzen?

Diese beiden Dinge zusammengebracht und der Befehl kann so aussehen:
Code:
screen $(wine "/irgendein pfad mit leerzeichen/programm.exe")
...
Mag eleganter aussehen. Aber bei Dollar, Klammer auf und zu muss man sich auch konzentrieren. Wer oft ein Backtick nutzt, dem geht die Eingabe leicht von der Hand - bei amerikanischen Tastaturen allemal.
</OT>
Miniaturansicht angehängter Grafiken
mc_editor.png  
Alex Winzer

Geändert von Schwedenbitter (18. Mai 2017 um 21:29 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.584 Beiträge
 
Delphi 5 Professional
 
#6

AW: [schon gelöst] Program für wine (Linux) erstellen bzw. weiter laufen lassen

  Alt 18. Mai 2017, 22:33
[OT]
Ich editiere regelmäßig mit mc und dessen syntax highlight. Backticks haben den Charme, dass man wegen der schwarzen Markierung exakt sieht, wie lang ein Befehl ist und was genau drin steht.
Das sieht man bei Subshellklarmmern ebenfalls, auch wenn ich zugebe, dass die Syntaxhervorhebung innerhalb dieser im MC fehlt. Aber das ist halt kein umfangreicher Editor sondern ein Dateimanager mit ein paar Editierfähigkeiten. Aber lassen wir das, denn ich verwende ihn ebenfalls täglich . Nano kann das übrigens für beide Varianten.

Zitat:
Aber ich kann Dir - falls mir wieder welche über den Weg laufen - einige Befehle unter Linux per PM aufzeigen, bei denen das notwendig ist.
Solange ein String in einfachen Anführungszeichen eingeschlossen ist, wird er so, wie er ist, übernommen. Da ist kein Escaping notwendig. Bei doppelten Anführungszeichen mag das anders aussehen, weil dort Variablenexpansion stattfindet.

Zitat:
Ich arbeite viel auf der Konsole unter openSUSE und da hat man mit <tab> immer escaped Leer- und Sonderzeichen drin. Warum sollte ich die nicht gleich nutzen?
Für die Completion lasse ich die ebenfalls stehen. Aber ich würde nie auf die Idee kommen, ein unübersichtliches und potentiell fehleranfälliges (z.B. weil unvollständig) Escaping in einem Skript zu benutzen. Richtig eklig wird das, wenn ein Pfad mit solchen escape-Backslashes in einer Zeile steht, dir ihrerseits wegen der Länge umgebrochen wird - ebenfalls mit Backslash. "Welcher Backslash gehört nun wohin?" muss man da erst überlegen.

Zitat:
Wer oft ein Backtick nutzt, dem geht die Eingabe leicht von der Hand - bei amerikanischen Tastaturen allemal.
Das stimmt. Aber man macht es Skripteinsteigern schwerer, wenn man nicht dazu sagt, dass es Backticks sind, welche Nachteile sie haben und dass sie ersetzbar sind.

[/OT]

Grüße
Dalai
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +2. Es ist jetzt 04:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf