반응형
솔라리스에 번들로 설치된 아파치의 경우 SMF설정이 간단하게 이루어 지지만
http://www.sunfreeware.com 에서 패키지로 설치하거나 직접 컴파일한경우에는 smf관련 Methods와 Manifests를
직접 작성해야합니다.
apache2 가 /usr/local/apache2 에 설치되어있다고 가정하고 시작하겠습니다.
우선 아래와 같은 Methods 화일을 /lib/svc/method/ 에 apache2 란 이름으로 생성합니다.
httpd.conf 와 httpd.pid 위치는 다르게 설정했을경우 경로를 직접 수정해 주세요
[sol:/]# vi /lib/svc/method/apache2
#!/sbin/sh # apache2 --in place /lib/svc/method/apache2 # . /lib/svc/share/smf_include.sh PATH=${PATH}:/usr/local/apache2/bin APACHECONF=/usr/local/apache2/conf/httpd.conf PIDFILE=/usr/local/apache2/logs/httpd.pid if [ -f $PIDFILE ] ; then pid=`cat $PIDFILE 2>/dev/null` else pid=`pgrep httpd` fi logmsg() { logger -p daemon.warning -t apache2 "$1" echo "$1" >&2 } case "$1" in start) [ ! -f ${APACHECONF} ] && exit 0 [ -n "$pid" ] && kill -TERM $pid 2>/dev/null /usr/local/apache2/bin/apachectl -k start if [ $? -ne 0 ] then exit $SMF_EXIT_ERR_CONIG fi ;; stop) /usr/local/apache2/bin/apachectl -k stop ;; reload) /usr/local/apache2/bin/apachectl -k graceful ;; restart) /usr/local/apache2/bin/apachectl -k restart ;; *) echo "Usage: $0 \c" >&2 echo "(start|stop|reload|restart)" >&2 exit 1 ;; esac exit $SMF_EXIT_OK다음은 Manifest 화일의 생성 입니다.
[sol:/]#vi /var/svc/manifest/site/apache2.xml
화일 생성 위치는 일단 site 디렉토리에 apache2.xml로 생성했습니다.
<?xml version="1.0"?> <!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1"> <!-- Apache2 SMF Manifest --> <service_bundle type='manifest' name='site:apache2'> <service name='site/apache2' type='service' version='1'> <create_default_instance enabled='false' /> <single_instance /> <dependency name='paths' grouping='require_all' restart_on='error' type='path'> <service_fmri value='file://localhost/usr/local/apache2/bin/apachectl' /> <service_fmri value='file://localhost/usr/local/apache2/bin/httpd' /> <service_fmri value='file://localhost/usr/local/apache2/conf/httpd.conf' /> </dependency> <dependency name='network' grouping='require_any' restart_on='error' type='service'> <service_fmri value='svc:/network/service' /> </dependency> <dependent name='apache2_multi-user' grouping='optional_all' restart_on='none'> <service_fmri value='svc:/milestone/multi-user' /> </dependent> <!-- The timeout needs to be large enough to wait for startup. --> <exec_method type='method' name='start' exec='/lib/svc/method/apache2 start' timeout_seconds='60' /> <exec_method type='method' name='stop' exec='/lib/svc/method/apache2 stop' timeout_seconds='60' /> <stability value='Unstable' /> <template> <common_name> <loctext xml:lang='C'> Apache 2 (httpd) </loctext> </common_name> <documentation> <manpage title='httpd' section='8' /> </documentation> </template> </service> </service_bundle>이렇게 두개의 화일을 생성했다면 퍼미션을 설정
shell 초기화에따라 안해줘도 되는경우도있겠지만 혹시 모르니 ...;
[sol10:/]#chown root:bin /lib/svc/method/apache2
[sol10:/]#chmod 555 /lib/svc/method/apache2
[sol10:/]#chown root:sys /var/svc/manifest/site/apache2.xml
[sol10:/]#chmod 444 /var/svc/manifest/site/apache2.xml
이제 import 해야겠죠?
우선 Manifest 화일이 제대로 되었나 체크를
[sol10:/]#xmllint /var/svc/manifest/site/apache2.xml
or
[sol10:/]#svccfg
svc:>
svc:> validate /var/svc/manifest/site/apache2.xml
간단하게 체크해보고 이상없군요 ㅡ,ㅡ;
이제 설정화일을 SMF로 import 하고
[sol10:/]# svccfg -v import /var/svc/manifest/site/apache2.xml
사용가능하게 enable 시키는 작업
[sol10:/]#svcadm -v enable svc:site/apache2
이렇게 설정해주면 됩니다.
서비스가 제대로 되고있나 확인?
[sol10:/]#svcs |grep apache
online 19:38:59 svc:/site/apache2:default
제대로 되었군요 혹시 online 대신 다른 메세지가 뜬다면
svcs -xv 나 svcs -x 로 확인해보세요
apache2의 method 와 manifest 화일을 첨부합니다.
apache2 Methods 화일
apache2 Manifest 화일
solaris,SMF,solaris10,unix,startup,apache2,apache,아파치
반응형
'Solaris' 카테고리의 다른 글
Solaris CVS 설치 및 설정 SMF (1) | 2008.09.26 |
---|---|
Solaris 10 에서 mysql SMF 설정하기 (0) | 2008.09.23 |
Solaris에 기본설치되어있는 mysql setup 하기 (1) | 2008.05.08 |
Solaris update 시 수동 업데이트가 필요한 경우 (0) | 2008.05.05 |
Solaris Sun Studio patch (0) | 2006.12.02 |