Re: Remote Execution of sudo Command Hangs.

2007-07-28 Thread Martin McCormick
Christian Walther writes:
 Try using pseudo tty allocation with your ssh command, it's the -t 
 option.
 So, use ssh -t remote.system.domain sudo dhcpreset as the command.

That worked perfectly.

 If this doesn't work directly, you can even try several ts. I had
 best results with -ttt.

This is great to know. The only difference besides the
fact it now works is that one sees a closed-connection message
like what you see when you ssh to another system and spawn a
shell because that seizes tty's also.

It just hadn't occurred to me before that you don't
seize a tty on the remote system when you remotely run an ssh
command.

Martin McCormick WB5AGZ  Stillwater, OK 
Systems Engineer
OSU Information Technology Department Network Operations Group
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]


Remote Execution of sudo Command Hangs.

2007-07-27 Thread Martin McCormick
We have 3 FreeBSD systems. One is trying to use ssh and sudo to
run commands on two other systems. The remote command being
executed is:

ssh remote.system.domain sudo dhcpreset

dhcpreset is an expect script most of which is shown
here:

spawn $env(SHELL)
expect -exact \#
send -- date\r
expect -exact \#
#body start
send -- cd /usr/local/etc\r
expect -exact \#
send -- /usr/local/etc/zap dhcpd\r
expect -exact \#
send_user Stopped [exec hostname] dhcpd at [exec date +%y%m%d%H%M%S ].\n\r
send -- /usr/local/sbin/dhcpd -q \r
expect -exact \#
send_user Partially restarted [exec hostname] dhcpd at [exec date 
+%y%m%d%H%M%S ].\n\r
send -- tail -1f /var/log/syslog\r
expect -exact peer moves from communications-interrupted to normal
send -- $CONTROL_C
#body end
expect -exact \#
send_user Fully restarted dhcpd at [exec date +%y%m%d%H%M%S ].\n\r
send -- date;exit\r
expect eof

The script works perfectly if you run it from a login
shell on the system where it actually lives as in:

sudo dhcpreset.

If you run it via ssh from a remote system, however, it
runs, produces the proper status messages and does its job and
then . . . . . .

You have to hit a Control-C to kill off the ssh
connection which doesn't drop on its own.

I think my script must somehow make sudo not see the
exit. Even though you see the dhcpd -q process started as a
background process, dhcpd daemonizes almost immediately and you
even see the completion message in a log of the activity so it
isn't that. Besides, it exits properly when called locally.

Other remote commands using sudo properly exit. Any idea
how I might figure out what is hanging things up?

If you do a ps on the remote system, the expect script
has ended. On the calling system, you still see ssh to the
remote system.

Reading the expect manual shows an exit command but also
says that it is implied when the end of the script is reached. I
have tried it with and without that command at the end with no
effect.

Thanks for any other suggestions for making this command
terminate when done.
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Remote Execution of sudo Command Hangs.

2007-07-27 Thread Christian Walther
Hi Martin,

On 27/07/07, Martin McCormick [EMAIL PROTECTED] wrote:
 We have 3 FreeBSD systems. One is trying to use ssh and sudo to
 run commands on two other systems. The remote command being
 executed is:

 ssh remote.system.domain sudo dhcpreset

 dhcpreset is an expect script most of which is shown
 here:
[Script removed]

 The script works perfectly if you run it from a login
 shell on the system where it actually lives as in:

 sudo dhcpreset.

 If you run it via ssh from a remote system, however, it
 runs, produces the proper status messages and does its job and
 then . . . . . .

 You have to hit a Control-C to kill off the ssh
 connection which doesn't drop on its own.

 I think my script must somehow make sudo not see the
 exit. Even though you see the dhcpd -q process started as a
 background process, dhcpd daemonizes almost immediately and you
 even see the completion message in a log of the activity so it
 isn't that. Besides, it exits properly when called locally.

 Other remote commands using sudo properly exit. Any idea
 how I might figure out what is hanging things up?

 If you do a ps on the remote system, the expect script
 has ended. On the calling system, you still see ssh to the
 remote system.

 Reading the expect manual shows an exit command but also
 says that it is implied when the end of the script is reached. I
 have tried it with and without that command at the end with no
 effect.

 Thanks for any other suggestions for making this command
 terminate when done.

Try using pseudo tty allocation with your ssh command, it's the -t option.
So, use ssh -t remote.system.domain sudo dhcpreset as the command.
If this doesn't work directly, you can even try several ts. I had
best results with -ttt.

If this still doesn't work, try using nohup dhcpd -q as command.

HTH
Christian
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]