[one-users] Issue with picking up proper ulimits during contextualization

Jon three18ti at gmail.com
Fri Jul 26 12:00:01 PDT 2013


Hello Richard,

What you are running into is the difference between an interactive shell
(e.g. an ssh session) and a non-interactive shell (e.g. a startup shell).
 [Depending on the distro] A default profile will check if your shell is
interactive, and if so, load bashrc.

>From the first line of my /etc/profile (ubuntu 13.04):

>> if [ "$PS1" ]; then

So when your context script is executed, your .bashrc is never loaded.

In the past, I've had trouble with upstart jobs not starting Catalyst
websites properly because the environment variables weren't being loaded.
 The solution there was to use sudo instead of sudo:

Instead of
>> su foo -l -c starman /some/app.psgi

I used:
>> sudo -u foo -i starman /some/app.psgi

Also, I recently ran into something similar in my day job, where I was
attempting to execute a script over ssh:

>> ssh root at hostname sudo somescript.pl

The problem I was running into was the environment variables were not being
loaded (because the shell detected it was running non-interactively), so I
invoked bash directly, which loaded the environment variables, so my ssh
command became:

>> ssh -t x0319t62 '/usr/bin/bash -l -c "/usr/local/bin/sudo -u foo
/path/to/somescript.pl "'

As Tino said, adding your directives to /etc/profile would cause them to be
loaded whenever someone logs in.  Based on your e-mail, I don't think
that's exactly what you are looking for (correct me if I'm wrong), so I
think one of the above solutions might work for you.

e.g.:

Instead of:
>> su tomcatA -l -c "/var/jakarta-tomcatA/bin/startup.sh"

try:
>> sudo -u tomcatA -i "/var/jakarta-tomcatA/bin/startup.sh"

or:
>> bash -l -c 'sudo tomcatA -l "/var/jakarta-tomcatA/bin/startup.sh"'

Anyway, hope that helps.

Best Regards,
Jon A

On Fri, Jul 26, 2013 at 11:43 AM, Richard Bettridge <
rbettridge at blackberry.com> wrote:

> I'll give it a shot, still a little confused about why it doesn't work in
> the contextualization's shell but works with an ssh login.  Kind of new at
> this stuff.
>
>
> Richard
>
>
> -----Original Message-----
> From: Tino Vazquez [mailto:cvazquez at c12g.com]
> Sent: Friday, July 26, 2013 12:40 PM
> To: Richard Bettridge
> Cc: users at lists.opennebula.org
> Subject: Re: [one-users] Issue with picking up proper ulimits during
> contextualization
>
> Hi Richard,
>
> Reading .bashrc with 'su' (even with -l) can be sometimes a difficult
> task. Any chance of setting it in /etc/profile?
>
> Regards,
>
> -Tino
> --
> Constantino Vázquez Blanco, PhD, MSc
> Senior Infrastructure Architect at C12G Labs
> www.c12g.com | @C12G | es.linkedin.com/in/tinova
>
> --
> Confidentiality Warning: The information contained in this e-mail and
> any accompanying documents, unless otherwise expressly indicated, is
> confidential and privileged, and is intended solely for the person
> and/or entity to whom it is addressed (i.e. those identified in the
> "To" and "cc" box). They are the property of C12G Labs S.L..
> Unauthorized distribution, review, use, disclosure, or copying of this
> communication, or any part thereof, is strictly prohibited and may be
> unlawful. If you have received this e-mail in error, please notify us
> immediately by e-mail at abuse at c12g.com and delete the e-mail and
> attachments and any copy from your system. C12G thanks you for your
> cooperation.
>
>
> On Fri, Jul 26, 2013 at 5:11 PM, Richard Bettridge
> <rbettridge at blackberry.com> wrote:
> > Hey,
> >
> >
> >
> > I'm having an issue where the ulimit for open files isn't being set
> properly
> > when I spin up a process for a user during contextualization.
> >
> >
> >
> > Upon start up of the non-persistent ubuntu 12 image, I am setting
> > limits.conf to what I want and I'm explicitly adding ulimit -n 65536 to
> the
> > user's .bashrc. However at the end of my 90_tomcat script when I execute
> the
> > tomcat process the ulimit is not being picked up and is set to 1024
> instead
> >
> >
> >
> > As a test in my 90_tomcat script I'm running ulimit -a >>
> /tmp/tomcatsu.txt
> >
> >
> >
> > root at host002:/mnt# cat 90_tomcat |grep "su tomcatA"
> >
> > su tomcatA -l -c "ulimit -a >> /tmp/tomcatsu.txt"
> >
> >
> >
> >
> >
> > So this gets run at the end of 90_tomcat:
> >
> > su tomcatA -l -c "ulimit -a >> /tmp/tomcatsu.txt"
> >
> > su tomcatA -l -c "/var/jakarta-tomcatA/bin/startup.sh"
> >
> >
> >
> > When I cat the txt file it says 1024:
> >
> >
> >
> > root at host002:/etc/pam.d# cat /tmp/tomcatsu.txt |grep open
> >
> > open files                      (-n) 1024
> >
> >
> >
> > But when I log in manually as root and run /mnt/90_tomcat by hand I end
> up
> > getting the proper ulimit:
> >
> >
> >
> > root at host002:/etc/pam.d# cat /tmp/tomcatsu.txt |grep open
> >
> > open files                      (-n) 65536
> >
> >
> >
> >
> >
> > Not sure what the issue but I'd appreciate any input.
> >
> >
> >
> > Thanks,
> >
> >
> >
> >
> >
> > Richard Bettridge
> >
> > Systems Engineering Specialist
> > BlackBerry
> >
> >
> >
> > ---------------------------------------------------------------------
> > This transmission (including any attachments) may contain confidential
> > information, privileged material (including material protected by the
> > solicitor-client or other applicable privileges), or constitute
> non-public
> > information. Any use of this information by anyone other than the
> intended
> > recipient is prohibited. If you have received this transmission in error,
> > please immediately reply to the sender and delete this information from
> your
> > system. Use, dissemination, distribution, or reproduction of this
> > transmission by unintended recipients is not authorized and may be
> unlawful.
> >
> > _______________________________________________
> > Users mailing list
> > Users at lists.opennebula.org
> > http://lists.opennebula.org/listinfo.cgi/users-opennebula.org
> >
>
> ---------------------------------------------------------------------
> This transmission (including any attachments) may contain confidential
> information, privileged material (including material protected by the
> solicitor-client or other applicable privileges), or constitute non-public
> information. Any use of this information by anyone other than the intended
> recipient is prohibited. If you have received this transmission in error,
> please immediately reply to the sender and delete this information from
> your system. Use, dissemination, distribution, or reproduction of this
> transmission by unintended recipients is not authorized and may be unlawful.
> _______________________________________________
> Users mailing list
> Users at lists.opennebula.org
> http://lists.opennebula.org/listinfo.cgi/users-opennebula.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opennebula.org/pipermail/users-opennebula.org/attachments/20130726/e88b91f7/attachment-0002.htm>


More information about the Users mailing list