Control ecasound remotely via distributed shell

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Control ecasound remotely via distributed shell
From: Ronald L. Jolly (ronjolly_AT_hiwaay.net)
Date: Sat Nov 29 2003 - 21:05:21 EET


Hello group
I am attempting to start Ecasound on a number of remote systems connected via a
wireless networking.
The environment is:

  - One Master/Controller system with an 802.11b wireless Access Point.
        - Wireless 802.11b ethernet networking installed.
        - Ecassound is not loaded on the Controller system.
        - RedHat 9 Linux installed with the CCRMA 2.4.21-1.ll.acpi kernel upgrade

  - Multiple Remote systems, maybe as many as ten.
        - Wireless 802.11b ethernet networking installed.
        - Ecasound 2.3.0 executable is installed on all of the remote systems.
        - RedHat 9 Linux installed with the CCRMA 2.4.21-1.ll.acpi kernel upgrade

I am using SSH to connect from the Controller system to the remote systems and
can successfully start Ecasound on the remote systems via the typical command
line shell.
Ecasound is started in interactive mode and the daemon enabled so I can
remotely control the recording session through some Python scripts
similar to the "ecamonitor" sample code.

-> ssh -t remotenode1 "ecasound -c --daemon -i:alsahw,0,0
-o:tmpfile.wav"

****************************************************************************
* ecasound v2.3.0 (C) 1997-2003 Kai Vehmanen
****************************************************************************
- [ Session created ] ------------------------------------------------------
- [ Chainsetup created (cmdline) ] -----------------------------------------
ecasound ('h' for help)>
-----------------------------------------------------------------------------

To start Ecasound on multiple remote systems, I am using the "dsh"
(distributed
shell) cluster management tool from the ClusterIT programs available at
http://www.garbled.net/clusterit.html.

dsh is set up to the the SSH environment so I do not need to supply passwords.
The dsh program will create an array of stdout/stderr pipes to receive the
typical stdout/stderr messages from each of the nodes you desire to communicate
to.
With dsh, it is possible to start an executable on multiple remote systems and
I have successfully done this with typical bash commands like df, ls and have
even started the Gnome editor, gedit and dsh will successfully start gedit on
each remote node and display the gedit window from each of
the remotenodes on the Controller system.
 
The problem I am having, is starting the remote systems Ecasound executable,
using dsh on the Controller system.
I can begin to start ecasound via dsh if I put ONLY ecasound as the command to
remotely execute,and get
back the typical:

    USAGE:ecasound [options] printout.

Within the dsh environment, when specifying that the ecasound executable
or a bash script containing the ecasound program,ecasound will return
immediately and exit.

If in dsh, I specify that ssh use the "-t" option it appears the
return message that the TERM
environment variable is not set. I have tried all methods I know of to
set the TERM variable So it appears to maybe the TERM environment variable from
within dsh is not working properly.
The interactive flag, -c, when supplied does not seem to help either.
I have also attempted to put ecasound in the background via the &, but it
made no difference.
Also tried putting the stdout and stderr in a file to no avail.

Could this be related to the stderr to a pipe error in the ecacontrol.py /
ECA_CONTROL_INTERFACE
problem that Jan Weil found a few days back?

I do have a short term solution, and that is to use the "pconsole"
package
(available at http://www.heiho.net/pconsole) which also is
a distributed shell. Pconsole brings up multiple virtual consoles that I can us
to start ecasound in interactive mode, but I would really like to do this
programmatically and refrain from
bringing up all of those remote virtual consoles.

This has been long....
Any help appreciated.
thanks
Ron

Here are some examples of dsh usage, some successful:
************************************************************************************************************************
/* dsh returning the amount of free disk space on nodes fs2 and fs3 in the
/data
partition */

[root_AT_MSTR root]# dsh -w fs2,fs3 "df -h | grep data"
fs2: /dev/hda3 2.0G 168M 1.8G 9% /data
fs3: /dev/hda3 2.0G 38M 1.9G 2% /data
[root_AT_MSTR root]#

---------------------------------------------------------------------------------------------------------------------------------------------

/* dsh returning the uname info from remote nodes fs2 and fs3 */
[root_AT_MSTR root]# dsh -w fs2,fs3 "uname -a"
fs2: Linux fs2 2.4.21-1.ll.acpi #1 Sat Jun 14 13:45:44 PDT 2003 i686 i686 i386
GNU/Linux
fs3: Linux fs3 2.4.21-1.ll.acpi #1 Sat Jun 14 13:45:44 PDT 2003 i686 i686 i386
GNU/Linux

/* Attempt to start ecassound on remote node fs2 */
[root_AT_MSTR root]# dsh -w fs2 "ecasound"
fs2: USAGE: ecasound [options]
fs2: -c enable interactive mode
fs2: -C disable interactive mode
// much deleted..... Ecasound returns the USAGE list...
-----------------------------------------------------------------------------------------------------------------------------------------------

/* Attempting to start ecasound with other parameters */
[root_AT_MSTR root]# dsh -w fs2 "ecasound -o:tmp.wav -i:alsahw,0,0"
[root_AT_MSTR root]#
  //ecasound exits without starting....
-----------------------------------------------------------------------------------------------------------------------------------------------

/* Attempt to start ecasound on remote node fs2 and direct stdout/stderr to log
files */
[root_AT_MSTR root]# dsh -w fs2 "ecasound 1>stdout.log 2> stderr.log
-o:tmp.wav
-i:alsahw,0,0"
[root_AT_MSTR root]#
  // ecasound exits without starting....
-----------------------------------------------------------------------------------------------------------------------------------------------

/* Start ecasound on remote node fs2 and direct stdout/stderr to log files and
interactive */
[root_AT_MSTR root]# dsh -w fs2 "ecasound -c 1>stdout.log 2>stderr.log
-o:tmp.wav
-i:alsahw,0,0"
[root_AT_MSTR root]#
  // ecasound exits without starting....

**************************************************************************************************

Ron Jolly


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Sat Nov 29 2003 - 21:01:06 EET