Kommando um Programm in einem anderen Pfad auszuführen

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
Mauze
Beiträge: 18
Registriert: 31.03.2005 08:15:14

Kommando um Programm in einem anderen Pfad auszuführen

Beitrag von Mauze » 17.11.2006 12:52:50

Hallo zusammen

Ich suche ein GNU/LINUX Kommando, um ein Programm in einem anderen Pfad ausführen zu können. Das entsprechende Kommando hatte ich auch schon mal benutzt, es gab auch eine Manual-Page dafür. Leider ist mir der Name des Kommandos entfallen.

Ich suche keine Alternativen, wie #bash (cd xyz && Kommando)

Danke
Mauze

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 17.11.2006 13:00:28

Code: Alles auswählen

mark@pc1:~$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
mark@pc1:~$ export PATH=$PATH:/your_path_to_heaven && echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/your_path_to_heaven
mark@pc1:~$
markus

Mauze
Beiträge: 18
Registriert: 31.03.2005 08:15:14

Beitrag von Mauze » 17.11.2006 13:13:15

Danke für die Antwort, ich suche aber das Kommando und keine Alternativen dafür.

Hintergrund ist das starten eines Progs aus der Shell, das in einem anderen Pfad laufen soll.

Selber schreiben wurde ich das Programm mit C so ungefähr:

main()
{
getopt(....)
..... // neuen Pfad auslesen
......// Parameter für zu starten Prog nach -- auslesen

fork(....) {
....
exec( neues Program )
....
}
}

Benutzeravatar
esteel
Beiträge: 242
Registriert: 23.07.2002 11:06:25
Kontaktdaten:

Beitrag von esteel » 17.11.2006 13:19:07

Wenn es dir nur um den Pfad geht sollte es reichen wenn du beides in eine Zeile packst ala:

Code: Alles auswählen

PATH=/my/path:/an/other/path PROGRAM
Dann sollte die Variable nur für das gestartet Programm so gesetzt sein..
i support free software: http://www.fsfe.org/en/fellows/esteel
a great free and opensource FPS game: http://nexuiz.com

Mauze
Beiträge: 18
Registriert: 31.03.2005 08:15:14

Beitrag von Mauze » 17.11.2006 13:27:24

Da ich auf keinen Fall das Environment verändern möchte entfallen für mich alle Lösungen die hier etwas verändern.

Noch mal die Frage an alle Debianer: wie heißt das GNU/LINUX Kommando, das genau diese Aufgabe erfüllt?

Mauze

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22456
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von KBDCALLS » 17.11.2006 14:01:36

Sorry, das ist kein Grund ausse Haut zu fahren. Und wenn ich das richtig interpretiere willst du verhinden das ein neuer Kommandointerpreter gestartet wird. Das ist auch keine Spezialität von Debian. Mit der Bash .

Code: Alles auswählen

. ./base
Als Beispiel. Dürfte mit anderen auch so funktionieren.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 17.11.2006 14:52:48

Mauze hat geschrieben: Hintergrund ist das starten eines Progs aus der Shell, das in einem anderen Pfad laufen soll.
Kannst du das erläutern? Ein Prozess läuft nicht in einem Pfad, dieser hat eine PID (Process ID) die er vom Kernel zugewiesen bekommt. Woher dieser Prozess dann "Information" bezieht hat nicht, gar nichts aber auch schon null mit der Art zu tun wie er gestarted wird - ausgenommen der übergabe von Information auf der CLI.

Im Grunde verstehe ich nicht worauf du hinaus willst.

markus

Mauze
Beiträge: 18
Registriert: 31.03.2005 08:15:14

Beitrag von Mauze » 17.11.2006 14:52:53

Hallo zusammen,

ich glaube mich hat hier noch keiner richtig verstanden und bitte darum auch um Entschuldigung. Wie ich schon im ersten Eintrag des Threads geschrieben habe, suche ich einfach nur den Namen des entsprechenden GNU/LINUX Kommandos.

Ich habe den Namen de Kommandos einfach vergessen. Selbst stundenlanges googeln hat mir nicht weiter geholfen, darum habe ich auch die Frage hier unter "Programm gesucht" gestellt.

Ich beschäftige mich schon länger mit DEBIAN, darum sind mir auch reichlich alternativen bekannt. Im konkreten Fall brauche ich für die Entwicklung eines embedded Linux halt genau diese Funktionalität.

Ich finde es halt nur eben unsinnig, dass ich ein kleines Tool schreiben müsste, wenn es diese Funktionalität bereits im Betriebssystem gibt. Master für mein embedded linux os soll halt Debian sein. Trotz einiger Schwierigkeiten verwende ich keinerlei andere Sourcen, als die, die zu Debian gehören. Um Konsequent zu sein darf ich mir natürlich auch keine eigenen Programme schreiben, zu mindestens für das Betriebssystem. Die eigentliche Anwendung hat logischerweise eigene Sourcen und ein CVS.

Grüsse Mauze

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 17.11.2006 14:57:00

Erkläre einfach noch einmal genauer was dieser Prozess machen soll, wie er, warum gestartet werden soll usw. und wir werden das Mysterium aufklären :D

Lieber zuviel Information als zuwenig.

markus

123456
Beiträge: 6126
Registriert: 08.03.2003 14:07:24

Beitrag von 123456 » 17.11.2006 15:07:31

vielleicht fällt es Dir wieder ein, wenn Du es siehst...?
http://www.linuxdevcenter.com/linux/cmd/

Mauze
Beiträge: 18
Registriert: 31.03.2005 08:15:14

Beitrag von Mauze » 17.11.2006 15:15:29

meandtheshell hat geschrieben:
Mauze hat geschrieben: Hintergrund ist das starten eines Progs aus der Shell, das in einem anderen Pfad laufen soll.
Kannst du das erläutern? Ein Prozess läuft nicht in einem Pfad, dieser hat eine PID (Process ID) die er vom Kernel zugewiesen bekommt. Woher dieser Prozess dann "Information" bezieht hat nicht, gar nichts aber auch schon null mit der Art zu tun wie er gestarted wird - ausgenommen der übergabe von Information auf der CLI.

Im Grunde verstehe ich nicht worauf du hinaus willst?.
Also jeder Process hat unter UNIX/LINUX ein Environment, siehe auch "man 7 environ". Dieses Environment enthält auch Angaben über den aktuellen Pfad (PWD) der zur Zeit gültig ist. Ich möchte einfach hier einen anderen Wert stehen haben, ohne Umwege über die shell gehen zu müssen.

Selbst ein kleines Programm wie ls macht seine Ausgabe in Bezug auf den aktuellen Pfad, wenn als Parameter kein absolutes Verzeichnis angegeben wird.

Mauze

Mauze
Beiträge: 18
Registriert: 31.03.2005 08:15:14

Beitrag von Mauze » 17.11.2006 15:22:04

ub13 hat geschrieben:vielleicht fällt es Dir wieder ein, wenn Du es siehst...?
http://www.linuxdevcenter.com/linux/cmd/
Danke ub13,

aber ich habe vorher schon folgendes in /bin /sbin /usr/bin und /usr/sbin gemacht:

Code: Alles auswählen

for i in `ls`; do man $i >> kalle; done; vi kalle
und konnte das Programm einfach nicht mehr finden.

Mauze

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 17.11.2006 16:03:05

Mauze hat geschrieben:Ich möchte einfach hier einen anderen Wert stehen haben, ohne Umwege über die shell gehen zu müssen.
Dann mach das im code - einfach der environment variable die für dich wichtig ist den wert der wichtig ist geben and you're done. Gerade bei einem embedded Zeug ist das der bessere Weg, da weniger Speicher draufgeht als auf ein third-party binary zurückzugreifen und dann das herumlinken - bäää

- man 3 putenv oder
- man 3 setenv

markus

Benutzeravatar
Sid Burn
Beiträge: 47
Registriert: 16.11.2006 15:18:02
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: /universe/earth/europe/germany/nrw/essen
Kontaktdaten:

Beitrag von Sid Burn » 17.11.2006 16:57:37

Ich kenne höchstens den "start-stop-daemon" dort kann man mit "-C" oder "--chdir" angeben wohin du vor der Ausführung wechseln möchtest.

Antworten