Ich versuche, PIFM auf meinem Raspberry Pi durch Tweets von einem bestimmten Twitter-Konto mit node.js auszulösen. Allerdings, wenn ich laufen twitpifm.js auf der Kommandozeile:Fehler: spawn sh ENOENT Node.js
node twitpifm.js
Ich erhalte die folgende Fehlermeldung:
events.js:141
throw er; // Unhandled 'error' event
^
Error: spawn sh ENOENT
at exports._errnoException (util.js:874:11)
at Process.ChildProcess._handle.onexit (internal/child_process.js:178:32)
at onErrorNT (internal/child_process.js:344:16)
at doNTCallback2 (node.js:439:9)
at process._tickCallback (node.js:353:17)
at Function.Module.runMain (module.js:469:11)
at startup (node.js:134:18)
at node.js:961:3
Ich benutze diese Version von PIFM auf meinem PI2
https://github.com/asmello/fm_transmitter
Ich habe ein Skript (test.sh) geschrieben, das PIFm von der Befehlszeile ohne Parameter
startet#!/bin/bash
/home/pi/PIFm/fm_transmitter/bin/Release/fm_transmitter music.wav 103.50
Ich bin mir bewusst, dass ich einen child_process innerhalb meiner node.js verwenden muss, um dieses Shell-Skript zu aktivieren, habe aber Probleme damit;
Zuerst rufe ich Kind-Prozess mit:
var spawn = require('child_process').spawn // child process.spawn
ich dann versuchen, die Schale mit dem folgenden auszulösen:
function thisTweet(){
spawn('sh', ['test.sh'], { // shell script I want to run.
cwd:' /home/pi/Desktop/Twitter', // current working directory where my twitpifm.js file is
env: Object.assign({}, process.env, { PATH: process.env.PATH + '/home/pi/PIFm/fm_transmitter' }) //this sets a path to where test.sh is
})
Irgendwelche Vorschläge wäre toll!