質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
シェルスクリプト

シェルスクリプトは、UNIX系のOSもしくはコマンドラインインタプリタ向けに記述されたスクリプト。bash/zshといったシェルによって実行されるため、このように呼ばれています。バッチ処理などに使用されており、テキストファイルに書かれた命令を順に実行します。

Node-RED

Node-REDは、ビジュアルプログラミング向けのフローベース開発ツールです。ブラウザベースのUIになっており、さまざまなノード(Node)を結びつけることでフローを作成でき、処理を実現します。

Q&A

解決済

1回答

330閲覧

Node-RED execノードの使い方

dendoushishi

総合スコア1

シェルスクリプト

シェルスクリプトは、UNIX系のOSもしくはコマンドラインインタプリタ向けに記述されたスクリプト。bash/zshといったシェルによって実行されるため、このように呼ばれています。バッチ処理などに使用されており、テキストファイルに書かれた命令を順に実行します。

Node-RED

Node-REDは、ビジュアルプログラミング向けのフローベース開発ツールです。ブラウザベースのUIになっており、さまざまなノード(Node)を結びつけることでフローを作成でき、処理を実現します。

0グッド

0クリップ

投稿2023/12/15 05:47

初めまして。
電動獅子と申します。
以下、質問させて頂きます。

実現したいこと

pi4:8GBにインストールした
Node-RED の exec ノードを用いて
シェルスクリプトファイル を実行したい

前提

Node-RED execノードを使用

execノード設定内容
コマンド:aaa.sh (シェルスクリプトファイルのディレクトリを記載)
引数
レ msg.payload
出力
コマンド終了時:execモード

シェルスクリプトファイル(xdotoolを使用している)
!/bin/sh
coding: utf-8
sleep 2s
xdotool mousemove 20 16

発生している問題・エラーメッセージ

シェルスクリプトファイルをダブルクリックすると問題なく起動して動作する

Node-RED デバッグエラーメッセージ  Can't open display: (null) Failed creating new xdo instance   ### 試したこと execノード設定内容  コマンド: ファイル情報の前に sudo とか !/bash/bin とか 入れて試しても変化なし ネット情報も漁ったのですが、 ほとんど素人なので、これ以上わかりません。 どなたかご教授頂けませんでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

melian

2023/12/15 06:12 編集

環境変数 DISPLAY にディスプレイ番号を設定して使うのですが、 DISPLAY=:0.0 xdotool mousemove 20 16 Node-RED の exec ノードで実行する際に Xorg(Display Server) が動作していない場合は失敗するでしょう。
dendoushishi

2023/12/16 03:22

早速のお返事ありがとうございます。 Xorg等勉強してから、また質問させて頂きます。
guest

回答1

0

自己解決

以下の方法にて解決致しました。
melian様、アドバイス頂きましてありがとうございました。

今回は、
Node-RED execノードを使用して、
Node-REDの外にある 別のアプリケーション(RDP)を立上げ、
Xdotool を用いて あちこち ポチポチして文字入力 しながら 
PCをコントロールする 
という物でした。

従って、RDPを動作させる為の領域(Display?)が開いていないので
エラーになっていたと思われます。
(初心者が感じているイメージです。詳しい事は全く判っていません・・・・・)
ちなみに Node-REDのデバッグ情報を見ていたら、
xdotool が動作するタイミング毎にエラーが発生していたので、
スクリプトファイルは開かれているんじゃないかと思い、
スクリプトファイルに文字出力等の命令を追加して、
ファイルが開かれている事を確認しました。

以下、実施内容です。
①ラズパイに Xorg をインストールする。
sudo apt install xorg     ← 訂正しました!
②LXTerminal を開いて プロンプト表示:ホスト名@ユーザー名 を確認。
③Node-RED exec ノードのコマンド設定を以下に変更。
sudo -h ホスト名 -u ユーザー名 DISPLAY=:0.0 動作させたいスクリプトファイル

以上。

    

投稿2024/01/12 02:36

編集2024/01/12 06:30
dendoushishi

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dendoushishi

2024/02/22 01:44 編集

早速訂正です。 sudo apt install xorg でした!!! 申し訳ありません・・・・・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問