View previous topic :: View next topic |
Author |
Message |
Keen16 n00b
Joined: 24 Feb 2005 Posts: 20
|
Posted: Wed Jul 20, 2005 6:49 am Post subject: java class background |
|
|
Есть класс под яву.
Пускаеш его по дефолту как java MainClass - он перехватывает консоль на себя.
А нужно, что б он крутился в фоне. Пробовал java MainClass & - тогда демон уходит в фон, но его никак прибить не получается.....
Может кто-то подскажет, как такой класс загнать в фон и можно было спокойно его прибивать..... |
|
Back to top |
|
|
bobdva Apprentice
Joined: 25 Nov 2003 Posts: 207 Location: Moscow
|
Posted: Fri Jul 22, 2005 6:38 am Post subject: Re: java class background |
|
|
Keen16 wrote: | Есть класс под яву.
Пускаеш его по дефолту как java MainClass - он перехватывает консоль на себя.
А нужно, что б он крутился в фоне. Пробовал java MainClass & - тогда демон уходит в фон, но его никак прибить не получается.....
Может кто-то подскажет, как такой класс загнать в фон и можно было спокойно его прибивать..... |
Code: |
#!/bin/sh
java MainClass &
echo $! > pid
|
очевидно потом делать можно так:
да, и не забудь сделать в классе shutdown hook - полезная вещь |
|
Back to top |
|
|
Keen16 n00b
Joined: 24 Feb 2005 Posts: 20
|
Posted: Fri Jul 22, 2005 8:34 am Post subject: |
|
|
Что-то совсем не могу понять. Написал скрипт:
#!/bin/sh
PID=/var/run/maildaemon.pid
case "$1" in
start)
echo -n "Starting java_maildaemon"
cd /home/www/3sider.com/maildaemon/
java MainClass &
echo $! > $PID
;;
stop)
echo -n "Stopping java_maildaemon"
kill `cat $PID`
;;
esac
exit 0
Кинул его в /etc/init.d/java
Дал права на него 755
Сделал rc-update add java default
В итоге пускаю его ручками как /etc/init.d/java start - все нормально стартует, прибивается.....
Делаю перезагрузку компа - скрипт не поднимается.
Физического доступа к компу нет. Только ССХ.
Что я делаю не так? |
|
Back to top |
|
|
viy Veteran
Joined: 03 Jul 2004 Posts: 1580 Location: Riga, Latvia
|
Posted: Fri Jul 22, 2005 9:19 am Post subject: |
|
|
Ручками запускаешь каким пользователем?
На момент запуска java есть в путях? |
|
Back to top |
|
|
Keen16 n00b
Joined: 24 Feb 2005 Posts: 20
|
Posted: Fri Jul 22, 2005 10:13 am Post subject: |
|
|
ручками из под рута.
В путях она есть. Даже указав полный путь
/opt/sun-jdk-1.4.2.08/bin/java MainClass &
ручками все стартует, а после ребута - нет. |
|
Back to top |
|
|
viy Veteran
Joined: 03 Jul 2004 Posts: 1580 Location: Riga, Latvia
|
Posted: Fri Jul 22, 2005 11:26 am Post subject: |
|
|
А где у тебя прописана JAVA_HOME?
Ты уверен, что когда /etc/init.d/java запускается, эта переменная установлена (как и PATH содержит $JAVA_HOME/bin)?
Когда запускаешь руками, то наследуется твое окружение, в скриртах --- все, что было установлено на тот момент в системе.
Попробуй добавить source /etc/profile или же явно сделать: Code: | export JAVA_HOME=/opt/sun-jdk-1.4.2.08
export PATH=${PATH}:${JAVA_HOME}/bin |
где-то в самом верху скрипта. |
|
Back to top |
|
|
Keen16 n00b
Joined: 24 Feb 2005 Posts: 20
|
Posted: Fri Jul 22, 2005 12:01 pm Post subject: |
|
|
брррр, не помогло.
Пробовал и експорт путей и source /etc/profile - без изменений. Как скрипт не стартовал, так и не стартует.... |
|
Back to top |
|
|
viy Veteran
Joined: 03 Jul 2004 Posts: 1580 Location: Riga, Latvia
|
Posted: Fri Jul 22, 2005 12:19 pm Post subject: |
|
|
Тогда замени java MainClass & на java MainClass > /tmp/java.log 2>&1 &,
ну и потом проверь лог. |
|
Back to top |
|
|
Keen16 n00b
Joined: 24 Feb 2005 Posts: 20
|
Posted: Fri Jul 22, 2005 1:46 pm Post subject: |
|
|
) А не создается /tmp/java.log
Что теперь можно посоветовать?
rc-update сделано.
Символическая ссылка из /etc/runlevels/default/java в /etc/init.d/java есть.
В каком месте у меня кривые руки? |
|
Back to top |
|
|
viy Veteran
Joined: 03 Jul 2004 Posts: 1580 Location: Riga, Latvia
|
Posted: Fri Jul 22, 2005 2:20 pm Post subject: |
|
|
А в системных логах ничего нет? rc-утилы вроде туда пишут... |
|
Back to top |
|
|
Keen16 n00b
Joined: 24 Feb 2005 Posts: 20
|
Posted: Fri Jul 22, 2005 9:42 pm Post subject: |
|
|
вот именно что нету. и плохо что прямого доступа к компу нету. Так бы на консоли что-то видно было...... |
|
Back to top |
|
|
viy Veteran
Joined: 03 Jul 2004 Posts: 1580 Location: Riga, Latvia
|
Posted: Sat Jul 23, 2005 9:34 am Post subject: |
|
|
Чудеса...
А система там какая? А какой boot-уровень загружается (может там не default, а что-то другое)?
Пробуй дебугить --- в самом начале файла добавь touch /tmp/i.am.started --- для уверенности, что туда копаем... |
|
Back to top |
|
|
Keen16 n00b
Joined: 24 Feb 2005 Posts: 20
|
Posted: Mon Jul 25, 2005 9:45 pm Post subject: |
|
|
Мдя.... Именно чудеса.
/tmp/im.started создался на ура. |
|
Back to top |
|
|
Keen16 n00b
Joined: 24 Feb 2005 Posts: 20
|
Posted: Mon Jul 25, 2005 9:53 pm Post subject: |
|
|
Все, тема закрыта.
Переписал скрипт как:
#!/bin/bash
PID=/var/run/maildaemon.pid
echo -n "Starting java_maildaemon"
cd /home/www/3sider.com/maildaemon/
java MainClass > /tmp/java.log 2>&1 &
echo $! > $PID
case "$1" in
stop)
echo -n "Stopping java_maildaemon"
kill `cat $PID`
;;
esac
Тоесть без start)......... В общем причина уже ясна. Поэтому бум дальше копать..... |
|
Back to top |
|
|
|