Bagaimana cara memulai Apache Tomcat saat boot di Mac OS X?

16

Saya mengamati bahwa tidak ada panduan lengkap untuk menginstal kucing jantan pada OS X yang akan mencakup pengaturannya untuk mulai saat boot.

Ini panduan singkatnya:

  • pasang macport
    • suport port upgrade
    • sudo port upgrade outdated.
  • sudo port install tomcat6, atau jika Anda ingin memeriksa versi lain port list|grep tomcat
  • config sekarang di: /opt/local/share/java/tomcat6/conf
  • skrip startup: /opt/local/share/java/tomcat6/bin/tomcatctl

    cp /opt/local/share/java/tomcat6/conf/tomcat-users.xml.sample /opt/local/share/java/tomcat6/conf/tomcat-users.xml nano / opt / local / share / java / tomcat6 /conf/tomcat-users.xml

  • ... periksa artikel

Tapi saya melewatkan bagian tentang cara menjalankannya sebagai true service / daemon: saat startup sistem dan secara opsional membuatnya restart jika macet.

bogdan
sumber
Mengapa menggunakan MacPorts ketika tersedia biner resmi? Saya benci ketergantungan beberapa pengguna Mac untuk MacPorts, terutama ketika sebagian besar paket MacPort sudah ketinggalan zaman dan dengan demikian Anda membuka diri terhadap celah keamanan.
Cromulent
Simon, ini diperlukan karena macports juga merupakan manajer paket sehingga Anda akan dapat mengatasi banyak masalah dengan menggunakan cara ini. Anda juga akan dapat meningkatkan tomcat dengan sangat mudah.
sorin

Jawaban:

12

Ini untuk menginstal kucing jantan sebagai daemon pada port 8080 tetapi juga memungkinkan port 80 dengan menggunakan pengalihan firewall. Itu diuji pada Mac OS 10.6 tetapi harus bekerja juga dengan 10.5.

Edit /opt/local/share/java/tomcat6/conf/server.xmldan tambahkan proxyport="80" URIEncoding="UTF-8"di dalam <Connector .../>.

Untuk meneruskan port 80 ke 8080 jalankan baris ini dan tambahkan itu /bin/catalina.sh:

sudo ipfw add 100 fwd 127.0.0.1,8080 tcp from any to any 80 in

Tetapkan cukup memori ke mesin Java atau Anda mungkin akan mendapat masalah nanti. Dalam/opt/local/share/java/tomcat6/conf/local.env

export JAVA_JVM_VERSION=CurrentJDK
export JAVA_OPTS="-Xmx3000M -Xms3000M -Djava.awt.headless=true -Duser.timezone=UTC"

Dalam contoh saya, saya mengalokasikan ~ 3Gb atau RAM tetapi Anda dapat mengadaptasinya, toh jangan menaruh kurang dari 1GB jika Anda menjalankan hudsontomcat di dalam.

Berjalan sebagai layanan

Jalankan nano /Library/LaunchDaemons/org.apache.tomcat.plistdan tempel kode di bawah ini:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"     "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Disabled</key>
    <false/>
    <key>Label</key>
    <string>org.apache.tomcat</string>
    <key>ProgramArguments</key>
    <array>
            <string>/opt/local/share/java/tomcat6/bin/catalina.sh</string>
            <string>run</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

Periksa apakah launchd mendeteksi Anda daemon baru, jika tidak me-reboot :(

launchctl list|grep tomcat

Mulai tomcat secara manual.

launchctl start org.apache.tomcat

Jika statusnya bukan sesuatu yang lain -, Anda memiliki masalah dan Anda harus memeriksanya: launchctl log level debugdan memeriksa /var/log/system.log.

Sorin Sbarnea
sumber
1
Bisa jadi saya sebagai saya baru di Mac (OS X 10.8.2) tetapi saya harus melakukannya: sudo launchctl load -w /Library/LaunchDaemons/org.apache.tomcat.plist untuk memulai
Steve
1

Anda perlu mendaftarkan kucing jantan sebagai item yang perlu dieksekusi saat startup. Di Mac OS, ini ditangani oleh launchd ( http://developer.apple.com/macosx/launchd.html ). Saya tidak tahu apakah launchd mendukung restart otomatis, tetapi sebaliknya Anda harus melihat sesuatu seperti supervisord ( http://supervisord.org/ ).

Bjorn
sumber
Ya, launchd memiliki opsi keepalive, baik sebagai ya / tidak dan dengan empat kondisi opsional.
flumignan
1

Untuk peluncuran Snow Leopard saat startup saya membuat file plist di / Library / LaunchDaemons / File plist akan terlihat seperti ini (di bawah ini, ubah agar sesuai dengan direktori Anda). Anda dapat memulai / menghentikan layanan untuk pengujian dengan mengeluarkan "launchctl load org.macports.tomcat6.plist" atau "launchctl unload org.macports.tomcat6.plist". Setelah Anda bekerja reboot untuk membuktikan autostart saat boot.


sh-3.2# more org.macports.tomcat6.plist
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd" >
<plist version='1.0'>
<dict>
<key>Label</key><string>org.macports.tomcat6</string>
<key>ProgramArguments</key>
<array>
        <string>/opt/local/bin/daemondo</string>
        <string>--label=tomcat6</string>
        <string>--start-cmd</string>
        <string>/opt/local/bin/tomcatctl</string>
        <string>start</string>
        <string>;</string>
        <string>--pid=fileclean</string>
        <string>--pidfile</string>
        <string>/opt/local/share/java/tomcat6/logs/tomcat6.pid</string>
</array>
<key>Debug</key><false/>
<key>Disabled</key><false/>
<key>OnDemand</key><false/>
<key>RunAtLoad></key><true/>
</dict>
</plist>
gordonkshort
sumber