"Failed to execute child process (no such file or directory)"
Ich versuche mich zu binden, einen Befehl, ein Skript zu starten, um einige Schlüssel in openbox WM.Ich habe das mit dem folgenden xml-Zeilen:
.
.
<keybind key="W-t">
<action name="Execute">
<command>"bash /home/bibek/test.sh"</command>
</action>
</keybind>
.
Wenn ich versuche, um den Befehl aufzurufen mit der Tastenkombination habe ich so zugewiesen, ich bekomme ein pop-up mit der Fehlermeldung:
Failed to execute child process "bash /home/bibek/test.sh" (no such file or directory)
Dies ist, was ~/test.sh
aussieht:
#!/usr/bin/env bash
audacious & exit`
Ich möchte in der Lage sein, mehr zu tun Dinge, die offensichtlich sind; es ist ein test-Skript.
Das script läuft wie erwartet vom terminal.
Was könnte hier das problem?
- Also wahrscheinlich
bash
kann nicht gefunden werden. Wahrscheinlich, weil diePATH
Umgebungsvariable nicht enthalten, was Sie erwarten. So versuchen diese Frage zu beantworten: was bedeutet, die variable enthalten? - nicht gefunden? Ich verstehe es nicht. Ich habe versucht, mit verschiedenen shebang (#!/bin/bash) auch, für was es Wert ist.
- Nein, dies ist der ursprüngliche Befehl nicht gefunden werden kann. Sie rufen:
bash ...
Es ist, dass bash das system nicht finden kann. Es hat nichts zu tun mit dem Inhalt, dass die Datei, die Sie dann ausführen wollen. - Das ist wohl richtig, werde ich bestätigen, wenn das wirklich das problem ist.
- Konnte Sie Bearbeiten Ihre Frage zu zeigen, wie Sie haben gebunden Sie diesen Befehl, um einen Schlüssel in openbox?
- Meine Vermutung wäre, dass der Befehl kann nicht nehmen keine Parameter. Glück für Sie, brauchen Sie nicht, entweder. Nur lassen Sie die
bash
-- die shebang-Zeile in das Skript finden Sie den richtigen Dolmetscher, und ist der richtige Weg, um das Skript auszuführen, sowieso. - das war der trick. Danke. Dies ist das erste mal, dass ich gesehen habe Tiefe in unix. Klar, ich war nicht bewusst, den richtigen Weg zu führen-Skript.
- Vielleicht post, als Antwort akzeptieren und es dann selber, so dass diese Frage nicht mehr als unbeantwortet.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese aufgelöst wird und durch entfernen der
bash
während die Bindung der Schlüssel in openbox. Die openbox-Prozess wird das Skript ausgeführt und die shebang in das script ruft die entsprechenden interpreter selbst.Stellen Sie zunächst sicher, dass beide
bash
und dein script den richtigen Pfad.Den Weg zurück aus
which bash
sollten Sie in Ihren Kram und/oder in das Skript in openbox wm. Wenn Sie get 'Kommando nicht gefunden', dann müssen Sie fixieren Sie Ihre $PATH-variable.$ which bash
gibt mir/bin/bash
. Ich habe versucht, mit diesem Kram. Gleichen Ergebnis. Habe auch versucht mit/bin/bash ~/test.sh
im openbox stattbash ~/test.sh
, funktioniert auch nicht.~
nur fürbibek
. Für alle anderen Nutzer, wird es zeigen Sie auf Ihrer eigenen home-Verzeichnis. Was macht das Skript im openbox WM Aussehen? Sie Debuggen möchten es. Sehen, wenn Sie eine einfachels
Befehl oder so etwas wie, dass zum ausführen von openbox.<keybind key="W-t"><action name="Execute"><command>"bash /home/bibek/test.sh"</command></action></keybind>
ist die Linie. Wenn ichaudacious
Befehl, das, was in der test.sh Datei in das Kommando-tag, funktioniert es wie erwartet.bash
in der xml. -><command>"/bin/bash /home/bibek/test.sh"</command>
. Oder hast du dies bereits versucht?$ /bin/bash /home/bibek/test.sh
arbeitet, den gleichen Befehl aus "Alt+f2" - Menü "ausführen" nicht.Erste Zeile muss #!/usr/bin, nicht #!/usr/bin/. Das "/" ist ein problem.