Я пытаюсь написать скрипт для запуска сервера tomcat, который отсоединяется от оболочки после завершения выполнения скрипта. Например, см. Снимок экрана ниже.
bash-3.00# ./startup.sh
Using CATALINA_BASE: /opt/tomcat/6.0.32
Using CATALINA_HOME: /opt/tomcat/6.0.32
Using CATALINA_TMPDIR: /opt/tomcat/6.0.32/temp
Using JRE_HOME: /opt/jdk1.6.0_26/
Using CLASSPATH: /opt/tomcat/6.0.32/bin/bootstrap.jar
bash-3.00# ps -eaf | grep tomcat
root 4737 2945 0 02:45:53 pts/24 0:00 grep tomcat
root 4734 29777 1 02:45:42 pts/24 0:19 /opt/jdk1.6.0_26//bin/java -Djava.util.logging.config.file=/opt/tomcat/6.0.32/c
Теперь, как вы видите, после выполнения скрипта процесс tomcat связывается с pts / 24, пока я не закрою оболочку.
Но я хочу, чтобы, даже если оболочка оставалась открытой, процесс должен показывать поведение, подобное приведенному ниже
bash-3.00# ps -eaf | grep tomcat
root 13985 2945 0 22:40:13 pts/24 0:00 grep tomcat
root 13977 29777 1 22:40:01 ? 0:22 /opt/jdk1.6.0_26//bin/java -Djava.util.logging.config.file=/opt/tomcat/6.0.32//
Операционная система - Solaris. Различные варианты, которые я использовал для достижения того же, используют nohup и disown, но процесс все еще связан с shell.
Другим механизмом является установка crontab или использование svc для запуска процесса при запуске системы, то есть демона, или мы можем написать небольшую C-программу, которая разветвляется и удаляется.
Здесь обратите внимание, что процесс выполняется в фоновом режиме.
Но я хочу добиться того же, используя скрипт на shell или perl. Поэтому любая мысль о том же мне очень поможет.
Заранее спасибо.