мотошкола.ру https://motoshkola.ru/forum/ |
|
Линуксойды нид хелп https://motoshkola.ru/forum/viewtopic.php?f=5&t=8271 |
Страница 1 из 1 |
Автор: | Sleg [ Вт фев 02, 2010 6:45 pm ] |
Заголовок сообщения: | Линуксойды нид хелп |
Сорри за очень многа букаф Я не продвинутый пользователь юниксподобных систем, поэтому никак не получается настроить Вообщем есть некий процесс который должен запускаться демоном. Проблема в том, что для корректной работы последнему скрипут требуется переменная среды JAVA_HOME. Куда прописать значение переменной, чтобы она была одна для всей системы? OS Ubuntu server Пробовал писать в /etc/environment, при логине такая переменная есть, но в скрипте она не инициализирована. Пробовал еще много куда результат тот же По логам видно что скрипт startup.sh вызывался. Для этого есть аж 3 скрипта: 1)Лежит в инит.д и имеет следющий вид Код: #!/bin/sh echo "JAVA_HOME= $JAVA_HOME" >> /var/log/tomcat5.log TOMCAT_NAME=Tomcat-5.5.28 BASEDIR=/usr/lib/apache-tomcat-5.5.28 PIDFILE="/var/run/tomcat5.pid" PID=$(cat $PIDFILE) # CATALINA_PID for catalina.sh export CATALINA_PID="$PIDFILE" tomcat_start () { echo "Sarting $TOMCAT_NAME" >> /var/log/tomcat5.log "$BASEDIR"/bin/startup.sh } tomcat_stop () { echo "Stopping $TOMCAT_NAME" >> /var/log/tomcat5.log "$BASEDIR"/bin/shutdown.sh rm $PIDFILE } case "$1" in start|stop) tomcat_${1} ;; restart) tomcat_stop tomcat_start ;; status) if [ -n "$PID" ]; then echo "$TOMCAT_NAME is running (pid $PID)." >> /var/log/tomcat5.log exit 0 else echo "$TOMCAT_NAME is not running." >> /var/log/tomcat5.log exit 1 fi ;; esac 2) есть соотвествующий startup.sh Код: #!/bin/sh # ----------------------------------------------------------------------------- # Start Script for the CATALINA Server # # $Id: startup.sh 758256 2009-03-25 13:43:00Z mturk $ # ----------------------------------------------------------------------------- # Better OS/400 detection: see Bugzilla 31132 os400=false darwin=false case "`uname`" in CYGWIN*) cygwin=true;; OS400*) os400=true;; Darwin*) darwin=true;; esac # resolve links - $0 may be a softlink PRG="$0" while [ -h "$PRG" ] ; do ls=`ls -ld "$PRG"` link=`expr "$ls" : '.*-> \(.*\)$'` if expr "$link" : '/.*' > /dev/null; then PRG="$link" else PRG=`dirname "$PRG"`/"$link" fi done PRGDIR=`dirname "$PRG"` EXECUTABLE=catalina.sh # Check that target executable exists if $os400; then # -x will Only work on the os400 if the files are: # 1. owned by the user # 2. owned by the PRIMARY group of the user # this will not work if the user belongs in secondary groups eval else if [ ! -x "$PRGDIR"/"$EXECUTABLE" ]; then echo "Cannot find $PRGDIR/$EXECUTABLE" echo "This file is needed to run this program" exit 1 fi fi exec "$PRGDIR"/"$EXECUTABLE" start "$@" 3) и собственно сам файл который всё закручивает Код: #!/bin/sh
# ----------------------------------------------------------------------------- # Start/Stop Script for the CATALINA Server # # Environment Variable Prequisites # # CATALINA_HOME May point at your Catalina "build" directory. # # CATALINA_BASE (Optional) Base directory for resolving dynamic portions # of a Catalina installation. If not present, resolves to # the same directory that CATALINA_HOME points to. # # CATALINA_OPTS (Optional) Java runtime options used when the "start", # or "run" command is executed. # # CATALINA_TMPDIR (Optional) Directory path location of temporary directory # the JVM should use (java.io.tmpdir). Defaults to # $CATALINA_BASE/temp. # # JAVA_HOME Must point at your Java Development Kit installation. # Required to run the with the "debug" or "javac" argument. # # JRE_HOME Must point at your Java Development Kit installation. # Defaults to JAVA_HOME if empty. # # JAVA_OPTS (Optional) Java runtime options used when the "start", # "stop", or "run" command is executed. # # JPDA_TRANSPORT (Optional) JPDA transport used when the "jpda start" # command is executed. The default is "dt_socket". # # JPDA_ADDRESS (Optional) Java runtime options used when the "jpda start" # command is executed. The default is 8000. # # JPDA_SUSPEND (Optional) Java runtime options used when the "jpda start" # command is executed. Specifies whether JVM should suspend # execution immediately after startup. Default is "n". # # JPDA_OPTS (Optional) Java runtime options used when the "jpda start" # command is executed. If used, JPDA_TRANSPORT, JPDA_ADDRESS, # and JPDA_SUSPEND are ignored. Thus, all required jpda # options MUST be specified. The default is: # # -Xdebug -Xrunjdwp:transport=$JPDA_TRANSPORT, # address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND # # JSSE_HOME (Optional) May point at your Java Secure Sockets Extension # (JSSE) installation, whose JAR files will be added to the # system class path used to start Tomcat. # # CATALINA_PID (Optional) Path of the file which should contains the pid # of catalina startup java process, when start (fork) is used # # $Id: catalina.sh 498126 2007-01-20 15:38:39Z markt $ # ----------------------------------------------------------------------------- # OS specific support. $var _must_ be set to either true or false. cygwin=false os400=false darwin=false case "`uname`" in CYGWIN*) cygwin=true;; OS400*) os400=true;; Darwin*) darwin=true;; esac # resolve links - $0 may be a softlink PRG="$0" while [ -h "$PRG" ]; do ls=`ls -ld "$PRG"` link=`expr "$ls" : '.*-> \(.*\)$'` if expr "$link" : '/.*' > /dev/null; then PRG="$link" else PRG=`dirname "$PRG"`/"$link" fi done # Get standard environment variables PRGDIR=`dirname "$PRG"` # Only set CATALINA_HOME if not already set [ -z "$CATALINA_HOME" ] && CATALINA_HOME=`cd "$PRGDIR/.." ; pwd` if [ -r "$CATALINA_HOME"/bin/setenv.sh ]; then . "$CATALINA_HOME"/bin/setenv.sh fi # For Cygwin, ensure paths are in UNIX format before anything is touched if $cygwin; then [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` [ -n "$JRE_HOME" ] && JRE_HOME=`cygpath --unix "$JRE_HOME"` [ -n "$CATALINA_HOME" ] && CATALINA_HOME=`cygpath --unix "$CATALINA_HOME"` [ -n "$CATALINA_BASE" ] && CATALINA_BASE=`cygpath --unix "$CATALINA_BASE"` [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --unix "$CLASSPATH"` [ -n "$JSSE_HOME" ] && JSSE_HOME=`cygpath --absolute --unix "$JSSE_HOME"` fi # For OS400 if $os400; then # Set job priority to standard for interactive (interactive - 6) by using # the interactive priority - 6, the helper threads that respond to requests # will be running at the same priority as interactive jobs. COMMAND='chgjob job('$JOBNAME') runpty(6)' system $COMMAND # Enable multi threading export QIBM_MULTI_THREADED=Y fi # Get standard Java environment variables if $os400; then # -r will Only work on the os400 if the files are: # 1. owned by the user # 2. owned by the PRIMARY group of the user # this will not work if the user belongs in secondary groups BASEDIR="$CATALINA_HOME" . "$CATALINA_HOME"/bin/setclasspath.sh else if [ -r "$CATALINA_HOME"/bin/setclasspath.sh ]; then BASEDIR="$CATALINA_HOME" . "$CATALINA_HOME"/bin/setclasspath.sh else echo "Cannot find $CATALINA_HOME/bin/setclasspath.sh" echo "This file is needed to run this program" exit 1 fi fi # Add on extra jar files to CLASSPATH if [ -n "$JSSE_HOME" ]; then CLASSPATH="$CLASSPATH":"$JSSE_HOME"/lib/jcert.jar:"$JSSE_HOME"/lib/jnet.jar:"$JSSE_HOME"/lib/jsse.jar fi CLASSPATH="$CLASSPATH":"$CATALINA_HOME"/bin/bootstrap.jar:"$CATALINA_HOME"/bin/commons-logging-api.jar if [ -z "$CATALINA_BASE" ] ; then CATALINA_BASE="$CATALINA_HOME" fi if [ -z "$CATALINA_TMPDIR" ] ; then # Define the java.io.tmpdir to use for Catalina CATALINA_TMPDIR="$CATALINA_BASE"/temp fi # Bugzilla 37848: When no TTY is available, don't output to console have_tty=0 if [ "`tty`" != "not a tty" ]; then have_tty=1 fi # For Cygwin, switch paths to Windows format before running java if $cygwin; then JAVA_HOME=`cygpath --absolute --windows "$JAVA_HOME"` JRE_HOME=`cygpath --absolute --windows "$JRE_HOME"` CATALINA_HOME=`cygpath --absolute --windows "$CATALINA_HOME"` CATALINA_BASE=`cygpath --absolute --windows "$CATALINA_BASE"` CATALINA_TMPDIR=`cygpath --absolute --windows "$CATALINA_TMPDIR"` CLASSPATH=`cygpath --path --windows "$CLASSPATH"` [ -n "$JSSE_HOME" ] && JSSE_HOME=`cygpath --absolute --windows "$JSSE_HOME"` JAVA_ENDORSED_DIRS=`cygpath --path --windows "$JAVA_ENDORSED_DIRS"` fi # Set juli LogManager if it is present if [ -r "$CATALINA_HOME"/bin/tomcat-juli.jar ]; then JAVA_OPTS="$JAVA_OPTS "-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager" "-Djava.util.logging.config.file="$CATALINA_BASE/conf/logging.properties" fi # ----- Execute The Requested Command ----------------------------------------- # Bugzilla 37848: only output this if we have a TTY if [ $have_tty -eq 1 ]; then echo "Using CATALINA_BASE: $CATALINA_BASE" echo "Using CATALINA_HOME: $CATALINA_HOME" echo "Using CATALINA_TMPDIR: $CATALINA_TMPDIR" if [ "$1" = "debug" -o "$1" = "javac" ] ; then echo "Using JAVA_HOME: $JAVA_HOME" else echo "Using JRE_HOME: $JRE_HOME" fi fi if [ "$1" = "jpda" ] ; then if [ -z "$JPDA_TRANSPORT" ]; then JPDA_TRANSPORT="dt_socket" fi if [ -z "$JPDA_ADDRESS" ]; then JPDA_ADDRESS="8000" fi if [ -z "$JPDA_SUSPEND" ]; then JPDA_SUSPEND="n" fi if [ -z "$JPDA_OPTS" ]; then JPDA_OPTS="-Xdebug -Xrunjdwp:transport=$JPDA_TRANSPORT,address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND" fi CATALINA_OPTS="$CATALINA_OPTS $JPDA_OPTS" shift fi if [ "$1" = "debug" ] ; then if $os400; then echo "Debug command not available on OS400" exit 1 else shift if [ "$1" = "-security" ] ; then echo "Using Security Manager" shift exec "$_RUNJDB" $JAVA_OPTS $CATALINA_OPTS \ -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \ -sourcepath "$CATALINA_HOME"/../../jakarta-tomcat-catalina/catalina/src/share \ -Djava.security.manager \ -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \ -Dcatalina.base="$CATALINA_BASE" \ -Dcatalina.home="$CATALINA_HOME" \ -Djava.io.tmpdir="$CATALINA_TMPDIR" \ org.apache.catalina.startup.Bootstrap "$@" start else exec "$_RUNJDB" $JAVA_OPTS $CATALINA_OPTS \ -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \ -sourcepath "$CATALINA_HOME"/../../jakarta-tomcat-catalina/catalina/src/share \ -Dcatalina.base="$CATALINA_BASE" \ -Dcatalina.home="$CATALINA_HOME" \ -Djava.io.tmpdir="$CATALINA_TMPDIR" \ org.apache.catalina.startup.Bootstrap "$@" start fi fi elif [ "$1" = "run" ]; then shift if [ "$1" = "-security" ] ; then echo "Using Security Manager" shift exec "$_RUNJAVA" $JAVA_OPTS $CATALINA_OPTS \ -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \ -Djava.security.manager \ -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \ -Dcatalina.base="$CATALINA_BASE" \ -Dcatalina.home="$CATALINA_HOME" \ -Djava.io.tmpdir="$CATALINA_TMPDIR" \ org.apache.catalina.startup.Bootstrap "$@" start else exec "$_RUNJAVA" $JAVA_OPTS $CATALINA_OPTS \ -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \ -Dcatalina.base="$CATALINA_BASE" \ -Dcatalina.home="$CATALINA_HOME" \ -Djava.io.tmpdir="$CATALINA_TMPDIR" \ org.apache.catalina.startup.Bootstrap "$@" start fi elif [ "$1" = "start" ] ; then shift touch "$CATALINA_BASE"/logs/catalina.out if [ "$1" = "-security" ] ; then echo "Using Security Manager" shift "$_RUNJAVA" $JAVA_OPTS $CATALINA_OPTS \ -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \ -Djava.security.manager \ -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \ -Dcatalina.base="$CATALINA_BASE" \ -Dcatalina.home="$CATALINA_HOME" \ -Djava.io.tmpdir="$CATALINA_TMPDIR" \ org.apache.catalina.startup.Bootstrap "$@" start \ >> "$CATALINA_BASE"/logs/catalina.out 2>&1 & if [ ! -z "$CATALINA_PID" ]; then echo $! > $CATALINA_PID fi else "$_RUNJAVA" $JAVA_OPTS $CATALINA_OPTS \ -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \ -Dcatalina.base="$CATALINA_BASE" \ -Dcatalina.home="$CATALINA_HOME" \ -Djava.io.tmpdir="$CATALINA_TMPDIR" \ org.apache.catalina.startup.Bootstrap "$@" start \ >> "$CATALINA_BASE"/logs/catalina.out 2>&1 & if [ ! -z "$CATALINA_PID" ]; then echo $! > $CATALINA_PID fi fi elif [ "$1" = "stop" ] ; then shift FORCE=0 if [ "$1" = "-force" ]; then shift FORCE=1 fi "$_RUNJAVA" $JAVA_OPTS \ -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \ -Dcatalina.base="$CATALINA_BASE" \ -Dcatalina.home="$CATALINA_HOME" \ -Djava.io.tmpdir="$CATALINA_TMPDIR" \ org.apache.catalina.startup.Bootstrap "$@" stop if [ $FORCE -eq 1 ]; then if [ ! -z "$CATALINA_PID" ]; then echo "Killing: `cat $CATALINA_PID`" kill -9 `cat $CATALINA_PID` else echo "Kill failed: \$CATALINA_PID not set" fi fi elif [ "$1" = "version" ] ; then "$_RUNJAVA" \ -classpath "$CATALINA_HOME/server/lib/catalina.jar" \ org.apache.catalina.util.ServerInfo else echo "Usage: catalina.sh ( commands ... )" echo "commands:" if $os400; then echo " debug Start Catalina in a debugger (not available on OS400)" echo " debug -security Debug Catalina with a security manager (not available on OS400)" else echo " debug Start Catalina in a debugger" echo " debug -security Debug Catalina with a security manager" fi echo " jpda start Start Catalina under JPDA debugger" echo " run Start Catalina in the current window" echo " run -security Start in the current window with security manager" echo " start Start Catalina in a separate window" echo " start -security Start in a separate window with security manager" echo " stop Stop Catalina" echo " stop -force Stop Catalina (followed by kill -KILL)" echo " version What version of tomcat are you running?" exit 1 fi |
Автор: | chebur [ Вт фев 02, 2010 7:15 pm ] |
Заголовок сообщения: | |
Попробуй в первый скрипт воткнуть две строчки JAVA_HOME=/usr/lib/jvm/java... путь до java. export JAVA_HOME |
Автор: | Orelman [ Вт фев 02, 2010 8:05 pm ] |
Заголовок сообщения: | |
папа, ты сейчас с кем разговаривал? (с) |
Автор: | Sleg [ Вт фев 02, 2010 11:20 pm ] |
Заголовок сообщения: | |
chebur писал(а): Попробуй в первый скрипт воткнуть две строчки
JAVA_HOME=/usr/lib/jvm/java... путь до java. export JAVA_HOME а есть возможность задать переменную так чтобы не приходилось в других скриптах писать такиеже две строчки? а то потом начнется, когда jvm проапдйтишь ползать по скриптам и искать где (албанский) поправить. т.е. аля системнае переменные в винде, чтоб в одном месте тока указывать. |
Автор: | Dimas [ Ср фев 03, 2010 2:32 am ] |
Заголовок сообщения: | |
Sleg писал(а): а есть возможность задать переменную так чтобы не приходилось в других скриптах писать такиеже две строчки? а то потом начнется, когда jvm проапдйтишь ползать по скриптам и искать где (албанский) поправить. т.е. аля системнае переменные в винде, чтоб в одном месте тока указывать.
под каким юзером процесс запускается? если под конкретным-существующим, то можно указать переменную для него в файле .bashrc который находится в домашнем каталоге этого пользователя. либо там-же - .profile если хочется непременно чтоб эта переменная была системной, общей, то надо смотреть в сторону /etc/profile сначала ты определяешь значения переменных, а потом export-ом делаешь их глобальными в зависимости от версии линуха могут быть варианты, твоей вообще не видел-не знаю, а например у меня в СЛЕС просят не трогать руками /etc/profile а создать /etc/profile.local - но это уж разберешься |
Автор: | Sleg [ Ср фев 03, 2010 11:12 am ] |
Заголовок сообщения: | |
Скрипт запускается из rc2.d и как мне кажется от имени системы. Пробовал прописывать и в /etc/profile таже шляпа. Единственный способ рабочий, это в скрипт который лежит в /etc/init.d добавить JAVA_HOME=/path_2_jdk |
Автор: | chebur [ Ср фев 03, 2010 1:28 pm ] |
Заголовок сообщения: | |
Sleg писал(а): Скрипт запускается из rc2.d и как мне кажется от имени системы.
В линуксе нет такого понятия "от имени системы", все запускается от каких-либо пользователей. Попробуй положить запускаемый файл в /etc/profile.d/ а в нем определи переменную JAVA_HOME и export сделай. |
Автор: | Dimas [ Ср фев 03, 2010 2:07 pm ] |
Заголовок сообщения: | |
Sleg писал(а): Скрипт запускается из rc2.d и как мне кажется от имени системы.
Пробовал прописывать и в /etc/profile таже шляпа. Единственный способ рабочий, это в скрипт который лежит в /etc/init.d добавить JAVA_HOME=/path_2_jdk что именно прописывалось в /etc/profile ? |
Автор: | Sleg [ Ср фев 03, 2010 3:54 pm ] |
Заголовок сообщения: | |
Dimas писал(а): что именно прописывалось в /etc/profile ?
по деволту там всего одна строчка это PATH="/usr/lib..... и так далее" пробовал добавить JAVA_HOME=/usr/path_2_jdk это ничего не меняет сли попробовать добавить к выше описаной строке еще и export JAVA_HOME при загрузки системы пишет ошибку в скрипте что-то вроде что export недопустимо в этом месте |
Страница 1 из 1 | Часовой пояс: UTC + 4 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |