jak uruchomić tomcat za pomocą komendy `script -c`?

0

Chcę uruchomić tomcat za pomocą polecenia:

script -c "sh /usr/program/tomcat/tomcat-8.0.50/bin/startup.sh"

Po uruchomieniu polecenia konsola pokazuje komunikat, że tomcat rozpoczął się pomyślnie.

Ale ps -ef | grep tomcat pokazuje, że kocur się nie uruchamia.

Potem próbuję użyć script polecenie bez -c opcja:

[root@xxx test]#script
Script started, file is typescript01
[root@xxx test]# sh /usr/program/tomcat/tomcat-8.0.50/bin/startup.sh 
Using CATALINA_BASE:   /usr/program/tomcat/tomcat-8.0.50
Using CATALINA_HOME:   /usr/program/tomcat/tomcat-8.0.50
Using CATALINA_TMPDIR: /usr/program/tomcat/tomcat-8.0.50/temp
Using JRE_HOME:        /usr/program/java/jdk1.8.0_112
Using CLASSPATH:       /usr/program/tomcat/tomcat-8.0.50/bin/bootstrap.jar:/usr/program/tomcat/tomcat-8.0.50/bin/tomcat-juli.jar
Tomcat started.

Następnie ps -ef | grep tomcat pokazuje, że kocur się uruchomił.

Jak mogę uruchomić kocur z script -c?

jacky
źródło
Zauważ swoje pierwsze ps nie udowadnia, że ​​kocur się nie zaczął, tylko że nie pozostawać bieganie, które jest inne. W przypadku interaktywnego przypadku, jeśli zakończysz script subshell (control-D, exit lub logout) czy tomcat nadal działa? Jeśli nie, to może umrzeć z powodu "zawieszenia" pty, chociaż powinno się to zdarzyć tylko wtedy, gdy ty lub ktoś zmienił konfigurację, ponieważ domyślna konfiguracja używa nohup Aby temu zapobiec. Dlaczego potrzebujesz script tak czy inaczej? normalny tomcat nie powinien używać tty. Jeśli chcesz tylko zarejestrować start, path/startup.sh >logfile powinno wystarczyć.
dave_thompson_085
Próbowałem twojego testu, po anulowaniu script, kocur nadal działa i nie ma szczególnego powodu, którego używam script -c polecenie, aby zacząć tomcat, po prostu spotykam się z tą próbą i chcę znaleźć przyczynę script -c nie można uruchomić tomcat. & lt; br & gt; thanks, :)
jacky
@ dave_thompson_085 Co ciekawe, próbuję dodać sleep do polecenia script -c "/usr/program/tomcat/tomcat-8.0.50/bin/startup.sh && sleep 1m" jak wspomniałeś, kocur można znaleźć w ps -ef, tak jak powiedziałeś, kocur jest faktycznie uruchomiony, ale rozłączenie pty tak, że kocur jest wyłączony.
jacky
@ dave_thompson_085 I mogę też użyć nohup, aby zacząć tomcat, script -c "nohup /usr/program/tomcat/tomcat-8.0.50/bin/startup.sh",Chociaż script koniec polecenia, ale tomcat można znaleźć w ps -ef
jacky
Jest sh w tym script -c "sh /usr/program/tomcat/tomcat-8.0.50/bin/startup.sh" rzeczywiście wymagane? Czy skrypt nie został ustawiony jako wykonywalny?
tink