Mac OS X에서 부팅 할 때 Apache Tomcat을 어떻게 시작합니까?


16

OS X에 Tomcat을 설치하는 데 필요한 전체 안내서가 없으며 부팅시 시작하도록 설정하는 것이 포함되어 있습니다.

빠른 가이드는 다음과 같습니다.

  • 맥 포트 설치
    • suport port upgrade
    • sudo port upgrade outdated.
  • sudo port install tomcat6또는 다른 버전 확인을 원하는 경우 port list|grep tomcat
  • 설정은 지금 : /opt/local/share/java/tomcat6/conf
  • 시작 스크립트 : /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

  • ... 기사를 확인

그러나 시스템 시작시 진정한 서비스 / 데몬으로 실행하고 충돌하는 경우 선택적으로 다시 시작하는 방법에 대한 부분이 없습니다.


공식 바이너리가있는 MacPorts를 사용하는 이유는 무엇입니까? 나는 대부분의 MacPorts 패키지가 오래되어 보안에 문제가 생길 때 일부 Mac 사용자가 MacPorts에 대해 의존하는 것을 싫어합니다.
Cromulent

Simon, macports도 패키지 관리자이므로이 방법을 사용하면 많은 문제를 극복 할 수 있습니다. 또한 Tomcat을 매우 쉽게 업그레이드 할 수 있습니다.
sorin

답변:


12

이는 포트 8080 에서 데몬 으로 tomcat을 설치하기위한 것이지만 방화벽 리디렉션을 사용하여 포트 80도 활성화합니다. Mac OS 10.6에서 테스트되었지만 10.5에서도 작동합니다.

편집 /opt/local/share/java/tomcat6/conf/server.xml및 추가 proxyport="80" URIEncoding="UTF-8"내부 <Connector .../>.

들어 전달 포트 8080-80이 줄을 실행하고 추가 할 /bin/catalina.sh:

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

Java 시스템에 충분한 메모리 를 지정하십시오. 그렇지 않으면 나중에 문제가 발생할 수 있습니다. 내부/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"

내 예에서는 ~ 3Gb 또는 RAM을 할당했지만 hudsonTomcat 내부에서 실행하는 경우 1GB 미만을 넣지 마십시오 .

서비스로 실행

nano /Library/LaunchDaemons/org.apache.tomcat.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>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>

재부팅하지 않은 경우 launched에서 새 데몬을 감지했는지 확인하십시오.

launchctl list|grep tomcat

바람둥이를 수동으로 시작하십시오.

launchctl start org.apache.tomcat

상태가 다른 것보다 무언가가있는 경우 -, 당신은 문제가 있고 당신은 그것을 조사해야 launchctl log level debug하고 확인 /var/log/system.log.


1
Mac을 처음 접했을 때 (OS X 10.8.2) 나일 수는 있지만 sudo launchctl load -w /Library/LaunchDaemons/org.apache.tomcat.plist를 시작해야합니다.
Steve

1

시작시 실행해야하는 항목으로 tomcat을 등록해야합니다. Mac OS에서 이는 시작 ( http://developer.apple.com/macosx/launchd.html )에 의해 처리됩니다 . launchd가 자동 재시작을 지원하는지 모르겠지만 그렇지 않으면 supervisord ( http://supervisord.org/ ) 와 같은 것을 봐야 합니다.


예, launched에는 예 / 아니요 및 네 가지 선택적 조건으로 keepalive 옵션이 있습니다.
flumignan

1

시작할 때 Snow Leopard를 시작하기 위해 / Library / LaunchDaemons /에서 plist 파일을 만들었습니다. plist 파일은 다음과 같습니다 (아래, 디렉토리와 일치하도록 수정). "launchctl load org.macports.tomcat6.plist"또는 "launchctl unload org.macports.tomcat6.plist"를 발행하여 테스트 서비스를 시작 / 중지 할 수 있습니다. 부팅시 자동 시작을 증명하기 위해 재부팅이 이루어지면.


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>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.