bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ulimit and ssh?


From: peter360
Subject: Re: ulimit and ssh?
Date: Fri, 8 Jan 2010 23:01:11 -0800 (PST)

Thanks Bob.  All the explanation were very helpful.  Now I feel I have a good
understanding of this little peculiarity of ssh.   I agree with you that
avoiding quoting altogether is simpler.   But I am curious guy and learning
for the sake of better understanding is also important to me.



Bob Proulx wrote:
> 
> peter360 wrote:
>> Thanks Adreas.  That was what I suspected in my reply to Bob.  But Bob
>> disagreed.   Looks like there were some confusion about this feature even
>> among experts.  Seems another reason to deprecate the feature.
> 
> I don't think anything I said disagreed with what Andreas said.  It is
> just confusing you since we are talking about different points in the
> process.  What does the local shell do, what does the ssh do, what
> does the remote shell do, what is the end-to-end effect and so forth.
> All three processes are handling the arguments and each has an affect
> at different points in the timeline.  I was talking end-to-end
> (shell-ssh-shell) and Andreas was talking about ssh.
> 
> And by the way but this feature can't really be changed or it would
> break twenty years or so of scripts which rely upon the existing
> behavior.
> 
> Greg Wooledge wrote:
>> imadev:~$ $HOME/bin/args 'ulimit -a'
>> 1 args: 'ulimit -a'
>> imadev:~$ remsh localhost $HOME/bin/args 'ulimit -a'
>> 2 args: 'ulimit' '-a'
>> imadev:~$ ssh localhost $HOME/bin/args 'ulimit -a'
>> wooledg@localhost's password:
>> 2 args: 'ulimit' '-a'
> 
> Nice!  It would also be illustrative to show what happens without any
> quoting and with quoting for two shell layers.
> 
>   $ $HOME/bin/show-args 'ulimit -a'
>   arg1: ulimit -a
> 
>   $ ssh -n localhost $HOME/bin/show-args ulimit -a
>   arg1: ulimit
>   arg2: -a
> 
>   $ ssh -n localhost $HOME/bin/show-args 'ulimit -a'
>   arg1: ulimit
>   arg2: -a
> 
>   $ ssh -n localhost $HOME/bin/show-args '"ulimit -a"'
>   arg1: ulimit -a
> 
> Since there are two shells splitting words in the end-to-end result
> then the effect is that you need to quote your arguments twice in
> order to have an argument containing whitespace in one argument by the
> time it has been processed through two shell's argument processing.
> 
> Without sufficient quoting you have this following case, which isn't
> what you want.  The bash shell on the remote end would not see args
> "-c" "ulimit -a" but would see "-a" as a separate
> 
>   $ ssh -n localhost $HOME/bin/show-args bash -c "ulimit -a"
>   arg1: bash
>   arg2: -c
>   arg3: ulimit
>   arg4: -a
> 
> That isn't what you want.  You need to quote the args twice.
> 
>   $ ssh -n localhost $HOME/bin/show-args 'bash -c "ulimit -a"'
>   arg1: bash
>   arg2: -c
>   arg3: ulimit -a
> 
> In the end you want something like this:
> 
>   $ ssh -n localhost 'bash -c "ulimit -a"'
>   core file size          (blocks, -c) 0
>   data seg size           (kbytes, -d) unlimited
>   scheduling priority             (-e) 0
>   file size               (blocks, -f) unlimited
>   pending signals                 (-I) 8185
>   max locked memory       (kbytes, -l) 32
>   max memory size         (kbytes, -m) unlimited
>   open files                      (-n) 1024
>   pipe size            (512 bytes, -p) 8
>   POSIX message queues     (bytes, -q) 819200
>   real-time priority              (-r) 0
>   stack size              (kbytes, -s) 8192
>   cpu time               (seconds, -t) unlimited
>   max user processes              (-u) 8185
>   virtual memory          (kbytes, -v) unlimited
>   file locks                      (-x) unlimited
> 
> However I think it is simpler to avoid the argument processing and
> instead using stdin to the shell.
> 
>   $ echo ulimit -a | ssh localhost bash
> 
> Isn't that simpler?
> 
> Bob
> 
> 
> 
> 

-- 
View this message in context: 
http://old.nabble.com/ulimit-and-ssh--tp25262471p27086055.html
Sent from the Gnu - Bash mailing list archive at Nabble.com.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]