Schrift
[thread]480[/thread]

system() führt befehl nicht aus !? (Seite 2)

Leser: 2


<< |< 1 2 3 >| >> 25 Einträge, 3 Seiten
Ronnie
 2005-04-20 11:46
#4841 #4841
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Nimm mal qx anstatt von system, dann bekommst du die Ausgabe des Befehls als Rückgabewert. Vieleicht ist das hilfreich.
ptk
 2005-04-20 12:01
#4842 #4842
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Ausserdem sollte man noch stderr umlenken (2>&1), falls die Fehlermeldungen dort ankommen.
darkie23
 2005-04-20 14:40
#4843 #4843
User since
2005-04-19
14 Artikel
BenutzerIn
[default_avatar]
Gute Idee. Das Ding hat folgendes ausgespuckt:

Code: (dl )
This is pdfeTeX, Version 3.14159-1.10b-2.1 (Web2C 7.4.5) entering extended mode ! I can't write on file `test.log'. Please type another transcript file name: ! Emergency stop No pages of output.


Also laut Fehlermeldung ist er nicht in der Lage die Datei test.log zu schreiben. Wenn ich den Befehl von der Konsole aus durchführe (egal aus welchem Verzeichnis heraus) schreibt er die test.log genau da hin, wo er auch die pdf hinschreibt - nämlich in den Ordner, wo die .tex Datei liegt. Da der Benutzer www-data mittlerweile ja vollen Zugriff auf diesen Ordner hat, sollte es eigentlich ohne Probleme gehen.

Jetzt denke ich mal, dass pdfetex entweder woanders noch eine test.log Datei anlegen will oder der Aufruf über Perl zur Folge hat, dass das Zielverzeichnis ignoriert wird und er die Dateien in das pdfetex Verzeichnis oder so schreiben will, was derzeit natürlich nicht geht. Schade, dass die Fehlermeldung nicht anzeigt, wohin genau er die test.log schreiben will.

Naja ich werd jetzt mal testen, ob irgendwo im System noch eine test.log angelegt wird (wenn ich den Befehl von der Konsole aus starte) oder ob die im "freigegebenen" Verzeichnis die einzige ist. Ne andere Möglichkeit wäre natürlich noch ne explizite option beim Aufruf von pdfetex/pdflatex, die das Zielverzeichnis angibt... leider bin ich da aber noch nicht fündig geworden. Ich kenn bisher nur pdfetex -f /pfad/dateiname... aber ich werd mal schaun und die nächten Ergebnisse posten.

Danke schonmal...
Ronnie
 2005-04-20 14:56
#4844 #4844
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Oder du probierst vorher explizit in deinem Script mit chdir in den entsprechenden Folder zu wechseln.
Strat
 2005-04-20 15:08
#4845 #4845
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
gerade bei der webprogrammierung ist oft das aktuelle verzeichnis nicht dort, wo es eigentlich sein sollte. anstelle von chdir vielleicht besser mit FindBin arbeiten, und so relative dateinamen in absolute umwandeln, z.B.
Code: (dl )
1
2
3
use FindBin;
#my $file = "../outfiles/out.txt";
my $file = "$FindBin::Bin/../outfiles/out.txt";
\n\n

<!--EDIT|Strat|1113995393-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
murphy
 2005-04-20 21:19
#4846 #4846
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
Bei LaTeX hat man aber das Problem, dass es seine Ausgabedateien immer im aktuellen Verzeichnis ablegen möchte -- und ich habe bisher auch noch keinen Weg entdeckt, ihm einen anderen Zielpfad als das aktuelle Verzeichnis unterzujubeln (weder bei MiKTeX noch bei teTeX)
When C++ is your hammer, every problem looks like your thumb.
Crian
 2005-04-21 13:18
#4847 #4847
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Also doch chdir?
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
darkie23
 2005-04-21 13:39
#4848 #4848
User since
2005-04-19
14 Artikel
BenutzerIn
[default_avatar]
also die chdir (bzw. cd) version hat geklappt. der code mit dem es letztendlich funktioniert hat, hat folgendermaßen ausgesehen:

Code (perl): (dl )
1
2
3
4
my $path = "/var/www/latex/";
my $filename = "test.tex";

my $result = qx(cd $path; pdflatex $filename);


danke für eure unterstützung.
Crian
 2005-04-21 15:12
#4849 #4849
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Möchtest Du wirklich, dass die Dateien nach /var/www/latex/ geschrieben werden? o_O
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
darkie23
 2005-04-21 15:51
#4850 #4850
User since
2005-04-19
14 Artikel
BenutzerIn
[default_avatar]
Ähm das war zwar nur für Testzwecke, aber was spricht dagegen? Bei mir ist /var/www/ nicht öffentlich!
<< |< 1 2 3 >| >> 25 Einträge, 3 Seiten



View all threads created 2005-04-19 16:53.