'Okumadan başlayan soruya hızlı bir şekilde gidebilirsiniz' demiştim '
Aşağıdakiler özel ihtiyaçlarıma ilişkin detaylar.
Ben oneiric lubuntu üzerinde ve tomcat başlatmak / durdurmak için bir masaüstü başlatıcısı oluşturmaya çalışıyorum. Dün açtığım bu konu ile ilgili sorunların yaşandığını lxde forumunda yaşıyorum.
Temel olarak sadece
/usr/local/tomcat6/bin/startup.sh
bir lxterminal penceresinin içindeki komutu çalıştıran masaüstü başlatıcısı çalışır, ancak eğer başlatıcının açtığı ve komutu uygulayan lxterminal penceresini kapatırsam, o zaman tomcat kapanır.
Tabii ki, Tomcat'ı elbette koşmaya devam ederken bu pencereyi kapatmak istiyorum.
Pencerenin sadece onu başlatmak için komutu yerine getirmesi gerekiyor, başka bir şey yok.
Yukarıdaki komutla çalıştırılan whoooole kodunun içinde arama yapmak sonunda suçluların şu kod olduğunu buldum:
/opt/jdk1.6.0_22/bin/java \
-Dsolr.solr.home=/home/foo/solr/solr_config/current/master/ \
-Dsolr.data.dir=/home/foo/solr/data \
-Dsolr.solr.home=/home/foo/solr/solr_config/current/master/ \
-Dsolr.data.dir=/home/foo/solr/data \
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \
-Djava.util.logging.config.file=/usr/local/tomcat6/conf/logging.properties \
-Djava.endorsed.dirs="/endorsed" \
-classpath ":/usr/local/tomcat6/bin/bootstrap.jar:/usr/local/tomcat6/bin/commons-logging-api.jar" \
-Dcatalina.base="/usr/local/tomcat6" \
-Dcatalina.home="/usr/local/tomcat6" \
-Djava.io.tmpdir="/usr/local/tomcat6/temp" \
org.apache.catalina.startup.Bootstrap "" start \
>> "/usr/local/tomcat6"/logs/catalina.out 2>&1 &
Aslında, bu komutu yeni bir lxterminal penceresinde çalıştırırsam, aynı davranış fark edilir:
A) tomcat başlar: eğer yeni bir lxterminal açarsam ve şunu yazarsam:
$ ps aux | grep tomcat
foo 21492 0.4 1.5 934436 47248 pts/2 Sl 11:37 0:03 /opt/jdk1.6.0_22/bin/java -Dsolr.solr.home=/home/foo/solr/solr_config/current/master/ -Dsolr.data.dir=/home/foo/solr/data -Dsolr.solr.home=/home/foo/solr/solr_config/current/master/ -Dsolr.data.dir=/home/foo/solr/data -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/usr/local/tomcat6/conf/logging.properties -Djava.endorsed.dirs=/endorsed -classpath :/usr/local/tomcat6/bin/bootstrap.jar:/usr/local/tomcat6/bin/commons-logging-api.jar -Dcatalina.base=/usr/local/tomcat6 -Dcatalina.home=/usr/local/tomcat6 -Djava.io.tmpdir=/usr/local/tomcat6/temp org.apache.catalina.startup.Bootstrap start
foo 21666 0.0 0.0 4476 768 pts/4 S+ 11:53 0:00 grep --color=auto tomcat
B) ilk lxterminal penceresini kapattığımda (yukarıdaki uzun komutu koyduğum pencereyi) kapattıktan sonra tomcat da kapanıyor. İkinci lxterminal penceresinden tekrar yazarsam
$ ps aux | grep tomcat
foo 21694 0.0 0.0 4476 772 pts/4 S+ 11:57 0:00 grep --color=auto tomcat
Söyledikten
yukarıda looong komutu sadece arka plan işidir: Bir lxterminal açıp basitçe yazarsanız
$ top &
[1] 21921
ve, bu pencereyi açık tutarken, ikinci bir lxterminal pencereyi ve türünü açarım.
$ ps aux | grep top
foo 21921 0.0 0.0 2452 764 pts/2 T 12:07 0:00 top
foo 21927 0.0 0.0 4476 772 pts/4 S+ 12:08 0:00 grep --color=auto top
İlk pencereyi kapatıp sonra ikinci pencereden tekrar kapatmam durumunda 'top' çalıştığını görebiliyorum
$ ps aux | grep top
foo 21927 0.0 0.0 4476 772 pts/4 S+ 12:08 0:00 grep --color=auto top
'top' komutu da kapatılır.
Peki işe bir lxterminal penceresinden başlamanın ve onu açan lxterminal penceresini kapattıktan sonra bile bu işi devam ettirmenin bir yolu var mı?
Açık olmak:
Bir komutu yürüten (üst ve benzeri) bir lxterminal penceresi açmak, bu lxterminal penceresini kapatmak ve hala yürütülen komutu çalıştırmak istiyorum.
Ayrıntılarımı en üst sayfada okuyanlar için:
garip olan şu ki, lxterminal bir pencere açarsam doğrudan yazın
/usr/local/tomcat6/bin/startup.sh
ve sonra o pencereyi kapatın. Sadece bir lxterminal pencere açan ve aynı komutu ateşleyen masaüstü başlatıcısından değil, ardından kapanıyor!
exitya da basarsanız CTRL+D, iş çalışmaya devam eder (arka plandan yapılırsa &).
nohupveyascreenişlemin etkileşimli olup olmamasına bağlı olarak ve buna geri dönmeniz gerekir.