Solaris
솔라리스 10 에서 svc 제어하기: inetadm, svcadm, svccfg
728x90
솔라리스(Solaris) 10 에서는 기존과 다르게 서비스를 /etc/rc.* 으로 제어하지 않고, 대부분의 서비스를 svc 라는 것으로 제어한다.
아마도 Windows 의 영향을 받은거 같은데, 사용하기가 귀찮아서 별로 좋지는 않다.
그래도 기존의 /etc/init.d 의 실행스크립트보다 이녀석을 사용해야 하기때문에 사용하는 법을 알아두도록 하죠.
우선 사용하는 프로그램의 종류를 살펴보자.
0. Utilties for facility control
svcs : (svc status)현재 서비스들(데몬서비스)의 상태를 보게 해준다.
svcadm : svc 들을 제어한다. 재시작, 설정변경들이 가능하다.
svccfg : svcadm 의 interactive 버전이라고 생각하면 된다.
inetadm : inetd.conf 를 대신하여 inet 관련 서비스들을 제어한다. 당연히 데몬서비스중에 network 관련들만 제어가능하다.
1. svcs
우선 svcs 는 실행해보면 다음과 같은 메시지가 나온다.
# svcs
STATE STIME FMRI
lagacy_run 12:51:42 lrc:/etc/rcS_d/S50sk98sol
... (생략)
online 12:51:49 svc:/network/inetd:default
여기서 FMRI (Fault Managed Resource Identifier) 라는 것이 등장한다. 이것은 서비스이름이 주소형식으로 되어있어서 이를 제어하는데 사용되는 URI 이름을 의미한다. 아마도 앞으로 웹주소와 통합하여 브라우저에서 제어하게 해줄것도 같다.
즉 위에서 FMRI 중 svc:/network/inetd:default 를 예를 들면 svc 는 서비스데몬이라는 것을 의미하고 /network/inetd 는 카테고리가 network 분류에 있는 inetd 라는 데몬이라는 것이다. 그리고 끝의 default 는 inetd 의 기본설정에 의한 서비스라는 것이다. 이것은 설정을 여러개 만들어놓고 선택적으로 사용할 수 있게 해주는것 같은데, 귀찮아서 해보지는 않았다.
자 그러면 이제 svc 를 이용해서 한번 ftp 를 보도록 하겠다.
# svcs | grep ftp
online 12:51:49 svc:/network/ftp:default
# svcs -l ftp
fmri svc:/network/ftp:default
이름 FTP server
사용 참
상태 online
...
# svcs -x
svc:/application/print/server:default (LP print server)
상태: disabled(2005년 10월 17일 월요일 오후 12시 51분 36초 이후)
이유: 관리자가 비활성화했습니다.
참조: http://sun.com/msg/SMF-8000-05
참조: lpsched(1M)
영향: 2개의 종속 서비스가실행되지 않습니다. (목록을 보려면 -v 사용)
몇몇 예인데, svcs 에 대해서는 맨페이지를 참고하고, svcs -x 를 해보면 뭔가 이상한 점이 있다면 보고를 자세하게 설명해준다.
이제 svcadm 을 보자.
2. svcadm
# svcadm
사용법: svcadm [-v] [cmd [args ... ]}
svcadm enable [-rst] <서비스> ... - 서비스를 활성화하고 온라인으로 설정함
svcadm disable [-st] <서비스> ... - 서비스를 비활성화하고 오프라인으로 설정함
svcadm restart <서비스> ... - 지정한 서비스를 다시 시작함
svcadm refresh <서비스> ... - 서비스 구성을 다시 읽음
svcadm mark [-It] <상태> <서비스> ... - 유지 보수 상태로 설정함
svcadm clear <서비스> ... - 유지 보수 상태를 해제함
svcadm milestone [-d] <이정표> - 서비스 이정표로 진행함
서비스는 FMRI, 약어 또는 fnmatch(5) 패턴을 사용하여 지정할 수 있습니다.
svc:/network/smtp:sendmail에 대한 다음 예를 참조하십시오.
svcadm <cmd> svc:/network/smtp:sendmail
svcadm <cmd> network/smtp:sendmail
svcadm <cmd> network/*mail
svcadm <cmd> network/smtp
svcadm <cmd> smtp:sendmail
svcadm <cmd> smtp
svcadm <cmd> sendmail
간단하게 사용법이 나온다.
종종 mark, clear 를 사용할 이유가 생기는데 서비스를 구성하고, 작동시키기 전까지는 mark 로 해두고 작업하는게 좋다.
그런뒤에 작업이 끝나면 clear 시켜주면 된다. enable/disable 이야 당연히 알테고...
그러면 간단한 예를 보자.
# svcadm restart svc:/network/ftp:default
이건 default 설정으로 되어있는 ftp 를 재시작한다. 시작이 안되어있으면 시작할테고.
3. svccfg
그러면 svccfg 도 보자.
svccfg 는 실행하면 바로 interactive 모드로 작동한다.
# svccfg
svc:> list
system/console-login
...
network/rpc-100068_2-5/rpc_udp
network/ftp/tcp
svc:> select ftp
:properties
default
svc:/network/ftp> listprop
general framework
general/entity_stability astring Unstable
general/restarter fmri svc:/network/inetd:default
inetd framework
svc:/network/ftp> editprop
...
svc:/network/ftp> select default
svc:/network/ftp:default> listprop
general framework
general/enabled boolean true
inetd_start framework
inetd_start/exec astring "/usr/sbin/in.ftpd -l"
svc:/network/ftp:default> end
간단하게 list 는 현재 위치에서 하위 URI를 보여주고, select 는 검색해서 같은 이름을 가지는 URI로 이동한다.
URI 의 이동은 현재 위치가 우선순위가 있고 현재위치에 없으면 하위로 가다가 그래도 없으면 다시 위로 간다.
listprop 는 property를 보여주고, editprop 는 에디터를 띄워서 설정을 파일로 에디팅할 수 있게 한다.
crontab -e 와 비슷하다고 생각하면 된다. editprop 시에는 모두 # 로 comment 처리 되어있는데
바꾸고자 하는 부분은 uncomment 한뒤에 저장하고 나오면 업데이트 된다.
4. inetadm
inetadm 은 svcadm 에서 inet 부분만 축소해놓은 것 같은 인상을 주는데 기능은 비슷하거나 조금 많다.
inetadm 도 실행하면 svcs 처럼 서비스 리스트가 주룩 나온다.
# inetadm
ENABLED STATE FMRI
enabled online svc:/network/rpc/mdcomm:default
...(생략)...
enabled online svc:/network/rpc-100068_2-5/rpc_udp:default
disabled disabled svc:/network/ftp/tcp:default
# inetadm -?
사용법:
inetadm
inetadm -?
inetadm -p
inetadm -l {FMRI | 패턴}...
inetadm -e {FMRI | 패턴}...
inetadm -d {FMRI | 패턴}...
inetadm -m {FMRI | 패턴}... {name=value}...
inetadm -M {name=value}...
옵션을 지정하지 않으면 inetadm은 inetd의 관리 대상 서비스를 모두 나열합니다.
옵션:
-? 도움말을 인쇄합니다.
-p 기본 inetd 등록 정보 값을 모두 나열합니다.
-l inet 서비스에 대한 inetd 등록 정보 값을 모두나열합니다.
-e inet 서비스를 활성화합니다.
-d inet 서비스를 비활성화합니다.
-m inet 서비스 inetd 등록 정보 값을 수정합니다.
-M 기본 inetd 등록 정보 값을 수정합니다.
사용하기 엄청 쉽지 않은가?
list 를 보고자 하면 inetadm -l svc:/network/ftp:default 로 속성을 보고
서비스를 활성화할려면 svc:/network/ftp:default 를 enable 시키기 위해서
inetadm -e svc:/network/ftp:default 라고 해주면 된다.
앞의 -l 로 본 속성값중에 max_copies 를 바꾸고 싶다면
inetadm -m svc:/network/ftp:default max_copies=20 라고 해주면 된다.
# inetadm -l svc:/network/ftp:default
SCOPE NAME=VALUE
name="ftp"
endpoint_type="stream"
proto="tcp"
isrpc=FALSE
wait=FALSE
exec="/usr/sbin/in.ftpd -l"
user="root"
default bind_addr=""
default bind_fail_max=-1
default bind_fail_interval=-1
default max_con_rate=-1
default max_copies=-1
default con_rate_offline=-1
default failrate_cnt=40
default failrate_interval=60
default inherit_env=TRUE
default tcp_trace=FALSE
default tcp_wrappers=FALSE
# inetadm -m svc:/network/ftp:default max_copies=20
# inetadm -l svc:/network/ftp:default
SCOPE NAME=VALUE
name="ftp"
endpoint_type="stream"
proto="tcp"
isrpc=FALSE
wait=FALSE
exec="/usr/sbin/in.ftpd -l"
user="root"
default bind_addr=""
default bind_fail_max=-1
default bind_fail_interval=-1
default max_con_rate=-1
max_copies=20
default con_rate_offline=-1
default failrate_cnt=40
default failrate_interval=60
default inherit_env=TRUE
default tcp_trace=FALSE
default tcp_wrappers=FALSE
참고) http://www.sun.com/bigadmin/content/selfheal/smf-quickstart.html
출처 : http://www.sunyzero.com/zboard/view.php?id=sunycomputer&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=163
아마도 Windows 의 영향을 받은거 같은데, 사용하기가 귀찮아서 별로 좋지는 않다.
그래도 기존의 /etc/init.d 의 실행스크립트보다 이녀석을 사용해야 하기때문에 사용하는 법을 알아두도록 하죠.
우선 사용하는 프로그램의 종류를 살펴보자.
0. Utilties for facility control
svcs : (svc status)현재 서비스들(데몬서비스)의 상태를 보게 해준다.
svcadm : svc 들을 제어한다. 재시작, 설정변경들이 가능하다.
svccfg : svcadm 의 interactive 버전이라고 생각하면 된다.
inetadm : inetd.conf 를 대신하여 inet 관련 서비스들을 제어한다. 당연히 데몬서비스중에 network 관련들만 제어가능하다.
1. svcs
우선 svcs 는 실행해보면 다음과 같은 메시지가 나온다.
# svcs
STATE STIME FMRI
lagacy_run 12:51:42 lrc:/etc/rcS_d
... (생략)
online 12:51:49 svc:/network/inetd
여기서 FMRI (Fault Managed Resource Identifier) 라는 것이 등장한다. 이것은 서비스이름이 주소형식으로 되어있어서 이를 제어하는데 사용되는 URI 이름을 의미한다. 아마도 앞으로 웹주소와 통합하여 브라우저에서 제어하게 해줄것도 같다.
즉 위에서 FMRI 중 svc:/network/inetd:default 를 예를 들면 svc 는 서비스데몬이라는 것을 의미하고 /network/inetd 는 카테고리가 network 분류에 있는 inetd 라는 데몬이라는 것이다. 그리고 끝의 default 는 inetd 의 기본설정에 의한 서비스라는 것이다. 이것은 설정을 여러개 만들어놓고 선택적으로 사용할 수 있게 해주는것 같은데, 귀찮아서 해보지는 않았다.
자 그러면 이제 svc 를 이용해서 한번 ftp 를 보도록 하겠다.
# svcs | grep ftp
online 12:51
# svcs -l ftp
fmri svc:/network/ftp:default
이름 FTP server
사용 참
상태 online
...
# svcs -x
svc:/application/print/server
상태: disabled(2005년 10월 17일 월요일 오후 12시 51분 36초 이후)
이유: 관리자가 비활성화했습니다.
참조: http://sun.com/msg/SMF-8000-05
참조: lpsched(1M)
영향: 2개의 종속 서비스가실행되지 않습니다. (목록을 보려면 -v 사용)
몇몇 예인데, svcs 에 대해서는 맨페이지를 참고하고, svcs -x 를 해보면 뭔가 이상한 점이 있다면 보고를 자세하게 설명해준다.
이제 svcadm 을 보자.
2. svcadm
# svcadm
사용법: svcadm [-v] [cmd [args ... ]}
svcadm enable [-rst] <서비스> ... - 서비스를 활성화하고 온라인으로 설정함
svcadm disable [-st] <서비스> ... - 서비스를 비활성화하고 오프라인으로 설정함
svcadm restart <서비스> ... - 지정한 서비스를 다시 시작함
svcadm refresh <서비스> ... - 서비스 구성을 다시 읽음
svcadm mark [-It] <상태> <서비스> ... - 유지 보수 상태로 설정함
svcadm clear <서비스> ... - 유지 보수 상태를 해제함
svcadm milestone [-d] <이정표> - 서비스 이정표로 진행함
서비스는 FMRI, 약어 또는 fnmatch(5) 패턴을 사용하여 지정할 수 있습니다.
svc:/network/smtp
svcadm <cmd> svc:/network/smtp:sendmail
svcadm <cmd> network/smtp:sendmail
svcadm <cmd> network/*mail
svcadm <cmd> network/smtp
svcadm <cmd> smtp:sendmail
svcadm <cmd> smtp
svcadm <cmd> sendmail
간단하게 사용법이 나온다.
종종 mark, clear 를 사용할 이유가 생기는데 서비스를 구성하고, 작동시키기 전까지는 mark 로 해두고 작업하는게 좋다.
그런뒤에 작업이 끝나면 clear 시켜주면 된다. enable/disable 이야 당연히 알테고...
그러면 간단한 예를 보자.
# svcadm restart svc:/network/ftp:default
이건 default 설정으로 되어있는 ftp 를 재시작한다. 시작이 안되어있으면 시작할테고.
3. svccfg
그러면 svccfg 도 보자.
svccfg 는 실행하면 바로 interactive 모드로 작동한다.
# svccfg
svc:> list
system/console-login
...
network/rpc-100068_2-5/rpc_udp
network/ftp/tcp
svc:> select ftp
:properties
default
svc:/network/ftp> listprop
general
general/entity_stability astring Unstable
general/restarter
inetd
svc:/network/ftp> editprop
...
svc:/network/ftp> select default
svc:/network/ftp:default> listprop
general
general/enabled
inetd_start
inetd_start/exec astring "/usr/sbin/in.ftpd -l"
svc:/network/ftp:default> end
간단하게 list 는 현재 위치에서 하위 URI를 보여주고, select 는 검색해서 같은 이름을 가지는 URI로 이동한다.
URI 의 이동은 현재 위치가 우선순위가 있고 현재위치에 없으면 하위로 가다가 그래도 없으면 다시 위로 간다.
listprop 는 property를 보여주고, editprop 는 에디터를 띄워서 설정을 파일로 에디팅할 수 있게 한다.
crontab -e 와 비슷하다고 생각하면 된다. editprop 시에는 모두 # 로 comment 처리 되어있는데
바꾸고자 하는 부분은 uncomment 한뒤에 저장하고 나오면 업데이트 된다.
4. inetadm
inetadm 은 svcadm 에서 inet 부분만 축소해놓은 것 같은 인상을 주는데 기능은 비슷하거나 조금 많다.
inetadm 도 실행하면 svcs 처럼 서비스 리스트가 주룩 나온다.
# inetadm
ENABLED STATE FMRI
enabled online svc:/network/rpc/mdcomm:default
...(생략)...
enabled online svc:/network/rpc-100068_2-5
disabled disabled svc:/network/ftp/tcp:default
# inetadm -?
사용법:
inetadm
inetadm -?
inetadm -p
inetadm -l {FMRI | 패턴}...
inetadm -e {FMRI | 패턴}...
inetadm -d {FMRI | 패턴}...
inetadm -m {FMRI | 패턴}... {name=value}...
inetadm -M {name=value}...
옵션을 지정하지 않으면 inetadm은 inetd의 관리 대상 서비스를 모두 나열합니다.
옵션:
-? 도움말을 인쇄합니다.
-p 기본 inetd 등록 정보 값을 모두 나열합니다.
-l inet 서비스에 대한 inetd 등록 정보 값을 모두나열합니다.
-e inet 서비스를 활성화합니다.
-d inet 서비스를 비활성화합니다.
-m inet 서비스 inetd 등록 정보 값을 수정합니다.
-M 기본 inetd 등록 정보 값을 수정합니다.
사용하기 엄청 쉽지 않은가?
list 를 보고자 하면 inetadm -l svc:/network/ftp:default 로 속성을 보고
서비스를 활성화할려면 svc:/network/ftp:default 를 enable 시키기 위해서
inetadm -e svc:/network/ftp:default 라고 해주면 된다.
앞의 -l 로 본 속성값중에 max_copies 를 바꾸고 싶다면
inetadm -m svc:/network/ftp:default max_copies=20 라고 해주면 된다.
# inetadm -l svc:/network/ftp:default
SCOPE NAME=VALUE
name="ftp"
endpoint_type="stream"
proto="tcp"
isrpc=FALSE
wait=FALSE
exec="/usr/sbin/in.ftpd -l"
user="root"
default bind_addr=""
default bind_fail_max=-1
default bind_fail_interval=-1
default max_con_rate=-1
default max_copies=-1
default con_rate_offline=-1
default failrate_cnt=40
default failrate_interval=60
default inherit_env=TRUE
default tcp_trace=FALSE
default tcp_wrappers=FALSE
# inetadm -m svc:/network/ftp:default max_copies=20
# inetadm -l svc:/network/ftp:default
SCOPE NAME=VALUE
name="ftp"
endpoint_type="stream"
proto="tcp"
isrpc=FALSE
wait=FALSE
exec="/usr/sbin/in.ftpd -l"
user="root"
default bind_addr=""
default bind_fail_max=-1
default bind_fail_interval=-1
default max_con_rate=-1
max_copies=20
default con_rate_offline=-1
default failrate_cnt=40
default failrate_interval=60
default inherit_env=TRUE
default tcp_trace=FALSE
default tcp_wrappers=FALSE
참고) http://www.sun.com/bigadmin
출처 : http://www.sunyzero.com/zboard
728x90
댓글