SSH hangs for a particular command in SSH.exec!(cmd)

Hi All,

I am trying to connect the remote ssh server via ruby using
Net::SSH.It is working fine for me for all the commands provided via
script and i could able to read the output of the command successfully.
But when i use the below command it is getting stuck in SSH.exec!(cmd)
and control is not returned from the line. Only if i click Ctrl+c in
command line the script is getting ended.
The command is ./wcsadmin.sh start --> this is used to start the
processes of my application in remote server

Please find the below code snippet of my ruby script:

Net::SSH.start(host, username, :password => password) do |ssh|
puts 'before exit'
output = ssh.exec!(/opt/wcsadmin.sh start)
puts 'Executed command'

The output of the command when i do it manually is :

[[email protected] bin]# ./wcsadmin.sh start

Starting Network Control System…

This may take a few minutes…
stty: standard input: Invalid argument

Network Control System started successfully.

Starting SAM daemon…
Done.
Starting DA daemon…
Starting DA syslog daemon…
start

if i use ssh.exec(’./wcsadmin.sh start’) the only difference is the
above output is getting printed but still the program is never ended.I
need to manually end it by hitting ctrl+c.When i searched in google i
could find you can use nohup command('nohup /opt/wcsadmin.sh start

/tmp/teststartserver.log 2>&1’) to skip the hangup signals and tried
the same.This also writes the output to teststartserver.log but getting
hanged.Can anyone please help me out on this issue?

Thanks in Advance!

Thanks,
Meena

On Thu, Mar 22, 2012 at 3:12 PM, Meena V. [email protected]
wrote:

output = ssh.exec!(/opt/wcsadmin.sh start)

the command to be execed should be in string format, so you’ ll have
to enclose it in quotes…

kind regards -botp

botp wrote in post #1052757:

On Thu, Mar 22, 2012 at 3:12 PM, Meena V. [email protected]
wrote:

output = ssh.exec!(/opt/wcsadmin.sh start)

the command to be execed should be in string format, so you’ ll have
to enclose it in quotes…

kind regards -botp

Hi Botp,

Thanks for your quick reply. I missed to add the same while posting
it(it is a Typo). i am using the command with quotes only as below:

Net::SSH.start(host, username, :password => password) do |ssh|
puts 'before exit'
output = ssh.exec!('/opt/wcsadmin.sh start')
puts 'Executed command'

But still facing the issue. Please help me.

Thanks,
Meena

On Thu, Mar 22, 2012 at 3:36 PM, Meena V. [email protected]
wrote:

Net::SSH.start(host, username, :password => password) do |ssh|
puts ‘before exit’
output = ssh.exec!(’/opt/wcsadmin.sh start’)
puts ‘Executed command’

1 check your logs
2 check your username, it might not be root
3 try using the block format of ssh exec

btw, pls show versions of ruby and net-ssh and actual screenshots

kind regards -botp

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs