Solaris 10 サービスを止めてみる
SMFで管理されているサービスは kill しても svc.startd によってまた起動されてしまう。よく落ちる syslogd なんかにはありがたい機能だけど、そもそも起動したくない奴をいかに落とすか、という話です。
# svcs | grep sendmail online 13:41:59 svc:/network/smtp:sendmail
svcsコマンドはサービスコンフィギュレーションリポジトリに記録されているサービスインスタンスの情報を表示するコマンド(man svcsより)。
ここでは大嫌いなsendmailを二度と起動しないようにしてみます。
# svcadm Usage: svcadm [-v] enable [-rt] FMRI... svcadm [-v] disable [-t] FMRI... svcadm [-v] restart FMRI... svcadm [-v] refresh FMRI... svcadm [-v] mark [-It] {degraded | maintenance} FMRI... svcadm [-v] clear FMRI... svcadm [-v] delegate restarter_FMRI FMRI... svcadm [-v] milestone [-d] milestone_FMRI
ということらしい。
# svcadm -v disable svc:/network/smtp:sendmail svc:/network/smtp:sendmail disabled.
-v をつけないと何も出力してくれなかった。
# svcs | grep sendmail # ps -ef | grep sendmail root 7164 7055 0 18:18:04 pts/1 0:00 grep sendmail
見事にいなくなった。再起動後し、起動していない事を確認。
# svcadm -v disable -t sendmail svc:/network/smtp:sendmail temporarily disabled.
ちなみに、-t オプションはその場限りのテンポラリオプション。再起動後は元気に起動します。
とりあえず小手先の話なので、サービスインスタンスリポジトリの管理がどうなっているか、などSMFの仕組みをきちんと勉強します。
http://docs.sun.com/app/docs/doc/817-1985/6mhm8o5n6?a=view