B
benny
Dear list,
I am using a kind of session-daemon who receives messages via drb and
sometimes it has to execute shell commands based on the message and to
return the result to the caller.
now i got 2 problems:
------------------
1. problem
Inside the session-daemon I used
result = `#{cmd}`
to execute the command and it worked quite well.
however I wanted to get the error-messages as well, so I considered using
Session::Bash:
stdout, stderr = Session::Bash::new.execute "#{cmd}"
for most command that works fine, but I have a shell script (first
line /usr/local/bin/bash) which returns some messages using "echo".
this messages never get into stdout (the new way) but the get back to result
(the old way). I also tried "/usr/local/bin/bash myshellscript" but that
didn't work ether. what am I missing?
------------------------
2nd problem (maybe only FreeBSD related)
the normal way to automatically start a service on system start in FreeBSD
is to have shell script in /usr/local/etc/rc.d/
(say /usr/local/etc/rc.d/session_daemon_starter.sh) which respond to the
parameter 'start' (and to 'stop' for the shutdown). I did this several
time: no prob.
the corresponding line in 'session_daemon_starter.sh' says
path_to_my_session-daemon &
to start it in the background. in 'path_to_my_session-daemon' itself the
first line is
#!/usr/local/bin/ruby
as usual. when I start 'session_daemon_starter.sh' by hand, e.g.
/usr/local/etc/rc.d/session_daemon_starter.sh start
everything is working fine: the session-daemon is running, accepting
messages via drb, sending messages via drb and sometimes executing
shell-commands based on the messages it receives.
when 'session_daemon_starter.sh' is automatically started with the system
start the session-daemon is running, accepting messages via drb, sending
messages via drb but doesn't execute any shell commands:
neither via
result = `#{cmd}`
nor via
stdout, stderr = Session::Bash::new.execute "#{cmd}"
what am I missing?
thank you for any response,
benny
I am using a kind of session-daemon who receives messages via drb and
sometimes it has to execute shell commands based on the message and to
return the result to the caller.
now i got 2 problems:
------------------
1. problem
Inside the session-daemon I used
result = `#{cmd}`
to execute the command and it worked quite well.
however I wanted to get the error-messages as well, so I considered using
Session::Bash:
stdout, stderr = Session::Bash::new.execute "#{cmd}"
for most command that works fine, but I have a shell script (first
line /usr/local/bin/bash) which returns some messages using "echo".
this messages never get into stdout (the new way) but the get back to result
(the old way). I also tried "/usr/local/bin/bash myshellscript" but that
didn't work ether. what am I missing?
------------------------
2nd problem (maybe only FreeBSD related)
the normal way to automatically start a service on system start in FreeBSD
is to have shell script in /usr/local/etc/rc.d/
(say /usr/local/etc/rc.d/session_daemon_starter.sh) which respond to the
parameter 'start' (and to 'stop' for the shutdown). I did this several
time: no prob.
the corresponding line in 'session_daemon_starter.sh' says
path_to_my_session-daemon &
to start it in the background. in 'path_to_my_session-daemon' itself the
first line is
#!/usr/local/bin/ruby
as usual. when I start 'session_daemon_starter.sh' by hand, e.g.
/usr/local/etc/rc.d/session_daemon_starter.sh start
everything is working fine: the session-daemon is running, accepting
messages via drb, sending messages via drb and sometimes executing
shell-commands based on the messages it receives.
when 'session_daemon_starter.sh' is automatically started with the system
start the session-daemon is running, accepting messages via drb, sending
messages via drb but doesn't execute any shell commands:
neither via
result = `#{cmd}`
nor via
stdout, stderr = Session::Bash::new.execute "#{cmd}"
what am I missing?
thank you for any response,
benny