-----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