- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
应用部署为Solaris 10 SMF服务.doc
应用部署为Solaris 10 SMF服务
SMF功能概览
Solaris 10中的SMF提供了强大的服务管理功能。以下是一部分重要的功能:
1. SMF向系统管理员提供统一的服务管理平台,利用svcs(1)命令就可以查看SMF所辖的各种服务,利用svccfg(1M)和svcadm(1M)命令可以配置各种服务和管理各种服务。对于传统UNIX,系统管理员必须记住各种服务不同的启动/停止方法、配置修改方法、服务状态及日志查询方法而言, SMF统一管理平台极大地降低了系统管理的难度,也降低了系统管理出错的机率。
2. SMF提供各服务间的依赖关系设定,可以自动按依赖关系顺序启动各服务。这对于传统UNIX以rc脚本文件名排列先后决定启动/停止顺序而言,SMF提供了无可比拟的完善的管理能力。
3. 并行启动不相互依赖的服务,从而使系统启动更快。由于各服务的依赖关系在SMF中有明确的定义,所以不相干的服务完全可以并行启动而不必担心冲突。
4. 自动侦测所辖服务的运行状态,在必要时可以重启服务或停止服务。作为预测性自愈技术(Predictive Self-Healing)的组成部分,SMF可以对所辖服务进行状态监控。根据服务的需要,SMF可以在服务进程不存在时,自动重启服务,或者在服务所依赖关系发生问题时,重启服务。也可以在服务连续发生问题时,将服务置为维护(maintenance)状态。
当然,SMF的管理机制并不排斥传统rc脚本运行服务的机制,以最大程度兼容传统方式的运作。有关SMF更多的介绍,请参看Solaris Service Management Facility - Quickstart Guide。
一个简单的服务程序
lt;表1是一个简单的程序myapp.c,它运行后将成为后台守护进程存在于系统中,并每间隔5秒钟向日志文件/tmp/myapp.log插入一行记录以报告自己的存在。虽然它实际上不向外提供任何服务,但该程序模拟了一般服务程序的设计结构和运行模式。即,程序运行后以守护进程形式存在于系统,程序头部有模拟服务配置read_config()和初始化app_init()逻辑,中部使用sleep(5)模拟等待服务请求逻辑,通过向日志插入记录模拟服务请求处理逻辑,然后返回至循环开始处sleep(5)继续等待下一个服务请求等。只要在此结构上修改和扩充相应的逻辑就可以将此程序修改为一个真正的服务程序。本文要点是说明如何部署应用为SMF服务,所以仅采用此程序作为例子。
表1.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101/***************************************/
/* myapp.c */
/***************************************/
#include lt;unistd.hgt;
#include lt;sys/param.hgt;
#include lt;sys/types.hgt;
#include lt;sys/stat.hgt;
#include lt;stdio.hgt;
#include lt;stdlib.hgt;
#include lt;time.hgt;
/* global exit status code */
#define RUN_OK 0
#define CONFIG_ERROR 1
#define FATAL_ERROR 2
/* function declaration */
int read_config(void);
int app_init(void);
void daemonize(void);
int main(int argc, char **argv)
{
FILE *fp;
time_t t;
/* Read the app configuration here if applicable. */
/* If error occurred, return non-zero. */
if (read_config() != RUN_O
您可能关注的文档
- 巨细胞病毒感染对婴幼儿肝脏损害的回顾性分析.doc
- 差别PCR技术检测结直肠癌c.doc
- 差生的心理探析及对策研究..doc
- 差额复试落选者应提前做好二次调剂的准备工作.doc
- 市农村合作三位一体建设情况汇报.doc
- 市地税局庆祝建党90周年红歌会主持词.doc
- 市场效率影响因素及提升途径的理论研究.doc
- 市场经济地位:中国经济的六级考试——经济法视角的再分析.doc
- 市场营销空间的三层面研究.doc
- 市实验幼儿园工作总结.doc
- 福莱特玻璃集团股份有限公司海外监管公告 - 福莱特玻璃集团股份有限公司2024年度环境、社会及管治报告.pdf
- 广哈通信:2024年度环境、社会及治理(ESG)报告.pdf
- 招商证券股份有限公司招商证券2024年度环境、社会及管治报告.pdf
- 宏信建设发展有限公司2024 可持续发展暨环境、社会及管治(ESG)报告.pdf
- 品创控股有限公司环境、社会及管治报告 2024.pdf
- 中信建投证券股份有限公司2024可持续发展暨环境、社会及管治报告.pdf
- 洛阳栾川钼业集团股份有限公司环境、社会及管治报告.pdf
- 361度国际有限公司二零二四年环境、社会及管治报告.pdf
- 中国神华能源股份有限公司2024年度环境、社会及管治报告.pdf
- 广西能源:2024年环境、社会及治理(ESG)报告.pdf
文档评论(0)