-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Chris,

On 10/30/2014 7:17 AM, Christopher Schultz wrote:
> Mark,
> 
> On 10/29/14 3:44 PM, Mark Eggers wrote:
> 
>> On 10/29/2014 10:33 AM, Anthony Bungeroth wrote:
> 
>>> I basically need a script to run automatically when I reboot
>>> the server. I have tried the various ways to get it to work in 
>>> init.d and it's not working.  When I go into init.d and run it 
>>> manually it works though.
> 
>>> I think it has something to do with the fact that to run the 
>>> script manually I am logged in as root, whereas for it to run 
>>> automatically it has to run in the background.
> 
>>> I will include the script info in this email and see if you
>>> had an idea as to where the issue is.
> 
>>> So in /etc/init.d, there is a script called Tomcat, here is the
>>>  "start" portion of the script.  Once again, when I run this 
>>> manually while logged in as root it launches.
> 
>>> #!/bin/sh # Apache Tomcat Startup Script # chkconfig 234 20 80
> 
>>> JAVA_HOME=/opt/jdk1.6.0_45 CATALINA_HOME=/opt/tomcat 
>>> TOMCAT_USER=tomcat
> 
>>> start() { echo -n "Starting Tomcat:  " su $TOMCAT_USER 
>>> $CATALINA_HOME/bin/startup.sh sleep 2 }
> 
>>> I tried creating a new script and putting that one in
>>> "rc.local". Here is the "rc.local" command:
> 
>>> #!/bin/sh # # This script will be executed *after* all the
>>> other init scripts. # You can put your own initialization stuff
>>> in here if you don't # want to do the full Sys V style init
>>> stuff.
> 
>>> su tomcat /opt/tomcat/bin/startup.sh
> 
>>> This is a total rookie issue I am sure....but just in case you
>>>  might be able to help with an easy enough fix, I would greatly
>>>  appreciate it.  I don't even know where to look for error logs
>>> to troubleshoot this. Thanks for any assistance. Anthony 
>>> ________________________________ Anthony Bungeroth Systems 
>>> Engineer
> 
>>> p: 347-762-5863 (347-76 BLUME) f: 419-831-5614 e: 
>>> anth...@blumetech.com Our Blog<http://blogs.blumetech.com/> 
>>> [blumetech] <http://www.blumetech.com> 
>>> <http://www.blumetech.com>[blumetech] 
>>> <http://www.aws-partner-directory.com/PartnerDirectory/PartnerDetail?Name=Blume+Technical+Consulting>
>
>>> 
>>> 
> 
> 
> 
>> <http://www.aws-partner-directory.com/PartnerDirectory/PartnerDetail?Name=Blume+Technical+Consulting>
>
>> 
> 
>>> This email and any files transmitted with it are confidential
>>> and intended solely for the use of the individual or entity to
>>> whom they are addressed. If you have received this email in
>>> error, you are directed not to read, disclose, reproduce,
>>> distribute, disseminate or otherwise use this transmission, and
>>> we also request that you immediately delete this message and
>>> its attachments, if any. Delivery of this message to any
>>> person other than the intended recipient(s) is not intended in
>>> any way to waive privilege or confidentiality. Finally, the
>>> recipient should check this email and any attachments for the
>>> presence of viruses; Blumetech accepts no liability for any
>>> damage caused by any virus transmitted by this email.
> 
> 
>> Anthony,
> 
>> My relevant line looks like this (all one line of course):
> 
>> $SU - $TOMCAT_USER -c "${CONFIG_OPTS} ${CAT_PID} 
>> ${TOMCAT_INSTANCE} start" >> $SERVICE_LOG 2>&1
> 
> 
> You may be using a different "su" than me, but here's the 
> documentation for the "-" switch for mine:
> 
> -, -l, --login Provide an environment similar to what the user
> would expect had the user logged in directly.
> 
> When - is used, it must be specified as the last su option. The 
> other forms (-l and --login) do not have this restriction.
> 
> So, first, I don't think you want a "login" shell: there is no
> reason to run /etc/profile, ~/.profile, etc. is there? Second, you
> aren't supposed to use "-" except as the last option on the line.
> You might want to check the manual page for your version of su.

- From my man page:

   -, -l, --login
      make  the  shell  a  login  shell, clears all envvars except for
      TERM, initializes HOME, SHELL, USER, LOGNAME and PATH

The login shell is a bit problematic, but initializing USER, LOGNAME,
and PATH (the Tomcat user has a restricted path) is useful.

I don't see the restriction on su for '-' that your man page mentions.
We're running CentOS 6.5 / 6.6 in production, and I run Fedora 20 on
my laptop. I'm working on vetting a CentOS 7 (systemd) script, but as
usual other things keep impacting my time.

> 
>> $SU                - set to su for non-SELinux, runuser for 
>> SELinux $TOMCAT_USER       - Tomcat user ${CONFIG_OPTS}     - 
>> CATALINA_HOME, CATALINA_BASE, JRE_HOME, etc. ${CAT_PID}
>> - PID, not used in startup ${TOMCAT_INSTANCE} - Tomcat command
>> based on CATALINA_HOME $SERVICE_LOG       - logs the start and
>> stop of the service
> 
> I would recommend using extra quotes around everything to avoid 
> problems with paths that might contain spaces.
> 

That's why the following line is in quotes:

"${CONFIG_OPTS} ${CAT_PID} ${TOMCAT_INSTANCE} start"

${CONFIG_OPTS} does contain spaces, and the resulting command
obviously contains spaces.

While the shell script is long and ugly, there are only a few places
where spaces crop up. I seem to have them all covered.

>> I stuff all of the options in a file which is parsed and placed 
>> into ${CONFIG_OPTS}. I could probably use setenv.sh, but this way
>> I have a root-controlled (and versioned) configuration file for
>> my service configuration.
> 
>> I use catalina.sh directly, which is buried in the 
>> ${TOMCAT_INSTANCE} variable. This is so I can do start and stop 
>> with one command setup.
> 
> +1
> 
> -chris

I'm looking at Chef to manage a lot of this in the future, depending
on how much Ruby programming is needed. I can then place everything in
version control, which makes me a much happier camper.

. . . just my two cents
/mde/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQEcBAEBAgAGBQJUUmPbAAoJEEFGbsYNeTwt2rYIAJN6w6vRbTWXu+dvFSrIRfRK
sehTvC+hQte5vBSYThWwwTTFOo0gk0+KpDqlbguRa/rTZvkSJqpBxmQW57tV3AV1
M+1xL80CIu8Q+2Z4emy4R5BJds8wlTgYkZ/IJJJ0yEkthVnGOX3AnythFkP6eOuZ
FxbV18VctDkZruI0SN9CVVAhC/Ibw41RvYVK9q91VtFph9MmRLqkGAhFqFgngFkj
cSNHOHfMRqWHIQbBkl3s+w/dXgiG0vs0mxGM5628QXL+rgxeqDibgRhYzkyOWwRk
qmFyFI33LxCzjfwUUSiEHD6zrdWgr7PTOnDtyCKfecRGQlnz73wmKSfFEeta+lw=
=IbQd
-----END PGP SIGNATURE-----

---
This email is free from viruses and malware because avast! Antivirus protection 
is active.
http://www.avast.com


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to