[ale] ssh question [solved]
Scott McBrien
smcbrien at gmail.com
Thu May 10 11:38:26 EDT 2012
You dont need the trailing echo. A service restart, when complete, will close the session (assuming that your init script isn't doing anything crazy). At least that's the behavior on RHEL and variants.
-Scott
On May 10, 2012, at 11:22 AM, Richard Bronosky <Richard at bronosky.com> wrote:
> Does this mean that another solution could have been this?
> ssh hostname "etc/init.d/service restart; echo;"
>
> Good to know. I didn't know of that behavior.
>
> On Thu, May 10, 2012 at 9:40 AM, Michael H. Warfield <mhw at wittsend.com> wrote:
>> On Thu, 2012-05-10 at 08:27 -0400, Edward Holcroft wrote:
>>> This is what worked:
>>
>>> $ sshpass -p '1qazxsw2' ssh -o StrictHostKeyChecking=no -t
>>> root at 192.168.50.87 "/etc/init.d/asterisk restart; sleep 5; exit"
>>
>> The problem you've run into is an old one that been known and discussed
>> for a long time. What happens is that sshd will not exit until all the
>> fds are closed, not just that the child has exited. This is intended to
>> insure that any buffered IO has been passed back to the client before
>> terminating the server end. What has happened is that your "asterisk
>> restart" process has forked off a daemon (asterisk service) that has not
>> closed stdout and stderr so sshd hangs around even though the script is
>> done. By running the commands the way you did in your "solution", you
>> run an extra shell to handle the chain of commands with an explicit
>> exit. There are several different ways of handling it, all with their
>> pluses and minuses.
>>
>> The behavior was discussed over on the OpenSSH forums quite some time
>> ago and debate invariable boils down to the conclusion - "works by
>> design - not a bug - will not fix". They blame it on the daemon
>> processes which did not close out their stdout and stderr fds when they
>> forked off the daemon process.
>>
>> Regards,
>> Mike
>>
>>> On Thu, May 10, 2012 at 7:59 AM, Edward Holcroft <eholcroft at mkainc.com>wrote:
>>>
>>>> Morning all
>>>>
>>>> I need to run a command on an internal server that will restart a given
>>>> service, in this case asterisk, without user intervention. I using this:
>>>>
>>>> sshpass -p '1qazxsw2' ssh -o StrictHostKeyChecking=no root at 192.168.50.87/etc/init.d/asterisk restart
>>>>
>>>> The problem is this command never logs out:
>>>>
>>>> Stopping safe_asterisk: [ OK ]
>>>> Shutting down asterisk: [ OK ]
>>>> Starting asterisk: [ OK ]
>>>>
>>>> .... and there it sits, until I manually close it
>>>>
>>>> I also tried using -t with the ssh command, which closes the session, but
>>>> without restarting the service, even though it says it did:
>>>>
>>>> $ sshpass -p '1qazxsw2' ssh -o StrictHostKeyChecking=no -t
>>>> root at 192.168.50.87 "/etc/init.d/asterisk restart"
>>>> Stopping safe_asterisk: [FAILED]
>>>> Shutting down asterisk: [FAILED]
>>>> Starting asterisk: [ OK ]
>>>> Connection to 192.168.50.87 closed.
>>>>
>>>> I found this article:
>>>>
>>>> http://www.snailbook.com/faq/background-jobs.auto.html
>>>>
>>>> And tried:
>>>>
>>>> $ sshpass -p '1qazxsw2' ssh -o StrictHostKeyChecking=no root at 192.168.50.87/etc/init.d/asterisk restart < /dev/null
>>>>
>>>> which also does not close.
>>>>
>>>> Any ideas on how I can get this to run the way I want it to?
>>>>
>>>> ed
>>>> --
>>>> Edward Holcroft
>>>> Madsen Kneppers & Associates Inc.
>>>> 3020 Holcomb Bridge Rd. NW
>>>> Norcross, GA
>>>> 30071
>>>> Tel (770) 446-9606
>>>> GoogleVoice (678) 587-8649
>>>>
>>>> WARNING/CONFIDENTIALITY NOTICE:This message may be confidential and/or
>>>> privileged. If you are not the intended recipient, please notify the sender
>>>> immediately then delete it - you should not copy or use it for any purpose
>>>> or disclose its content to any other person. Internet communications are
>>>> not secure. You should scan this message and any attachments for viruses.
>>>> Any unauthorized use or interception of this e-mail is illegal.
>>>>
>>>
>>>
>>>
>>> --
>>> Edward Holcroft
>>> Madsen Kneppers & Associates Inc.
>>> 3020 Holcomb Bridge Rd. NW
>>> Norcross, GA
>>> 30071
>>> Tel (770) 446-9606
>>> GoogleVoice (678) 587-8649
>>>
>>> WARNING/CONFIDENTIALITY NOTICE:This message may be confidential and/or
>>> privileged. If you are not the intended recipient, please notify the sender
>>> immediately then delete it - you should not copy or use it for any purpose
>>> or disclose its content to any other person. Internet communications are
>>> not secure. You should scan this message and any attachments for viruses.
>>> Any unauthorized use or interception of this e-mail is illegal.
>>>
>>> _______________________________________________
>>> Ale mailing list
>>> Ale at ale.org
>>> http://mail.ale.org/mailman/listinfo/ale
>>> See JOBS, ANNOUNCE and SCHOOLS lists at
>>> http://mail.ale.org/mailman/listinfo
>>
>> --
>> Michael H. Warfield (AI4NB) | (770) 985-6132 | mhw at WittsEnd.com
>> /\/\|=mhw=|\/\/ | (678) 463-0932 | http://www.wittsend.com/mhw/
>> NIC whois: MHW9 | An optimist believes we live in the best of all
>> PGP Key: 0x674627FF | possible worlds. A pessimist is sure of it!
>>
>> _______________________________________________
>> Ale mailing list
>> Ale at ale.org
>> http://mail.ale.org/mailman/listinfo/ale
>> See JOBS, ANNOUNCE and SCHOOLS lists at
>> http://mail.ale.org/mailman/listinfo
>>
>
>
>
> --
> .!# RichardBronosky #!.
>
> _______________________________________________
> Ale mailing list
> Ale at ale.org
> http://mail.ale.org/mailman/listinfo/ale
> See JOBS, ANNOUNCE and SCHOOLS lists at
> http://mail.ale.org/mailman/listinfo
More information about the Ale
mailing list