当前位置: 技术问答>linux和unix
linux下服务程序测试
来源: 互联网 发布时间:2016-09-21
本文导语: 我写了一个服务程序:main.c #include #include #include #include #include //是否停止服务程序的标识 int nStop = 1; void sig_term(int anSigno) { nStop = 0; printf("sig_term func n"); } int main() { //实现守护进程 d...
我写了一个服务程序:main.c
#include
#include
#include
#include
#include
//是否停止服务程序的标识
int nStop = 1;
void sig_term(int anSigno)
{
nStop = 0;
printf("sig_term func n");
}
int main()
{
//实现守护进程
daemon(0,0);
//设置信号响应函数
signal(SIGTERM,sig_term);
//创建线程工作
//pthread_create(...)
while(nStop)
{
sleep(1);
}
//清理资源
return 0;
}
然后写个shell脚本:myServer
#!/bin/sh
#/etc/init.d/testServer
set -e
DAEMON=/home/whc/test/server_process/server_process/www
NAME=www
conf="/home/whc/test/server_process/server_process/www.conf"
start()
{
echo "start testServer";
daemon $DAEMON $conf
#$DAEMON &
}
stop()
{
killall www;
echo "stop testServer";
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "useage:$0 start|stop|restart"
exit 0;
esac
按照你说的,1实现守护进程2、使用daemon启动,3、终止时使用信号做清理资源操作
就上面的两个文件是否达到了服务程序的标准?
还有就是我试图在main.c中创建一个文件,然后往其中谢写数据,在程序终止时(测试信号是否接收到并处理)
#include
#include
#include
#include
#include
//是否停止服务程序的标识
int nStop = 1;
void sig_term(int anSigno)
{
nStop = 0;
printf("sig_term func n");
}
int main()
{
//实现守护进程
daemon(0,0);
//设置信号响应函数
signal(SIGTERM,sig_term);
FILE *fp = fopen("./test.txt","w+");
if(fp == NULL)
return -1;
while(nStop)
{
time_t timep;
time(&timep);
char *str = asctime(gmtime(&timep));
if(fwrite(str,1,strlen(str),fp)
#include
#include
#include
#include
#include
//是否停止服务程序的标识
int nStop = 1;
void sig_term(int anSigno)
{
nStop = 0;
printf("sig_term func n");
}
int main()
{
//实现守护进程
daemon(0,0);
//设置信号响应函数
signal(SIGTERM,sig_term);
//创建线程工作
//pthread_create(...)
while(nStop)
{
sleep(1);
}
//清理资源
return 0;
}
然后写个shell脚本:myServer
#!/bin/sh
#/etc/init.d/testServer
set -e
DAEMON=/home/whc/test/server_process/server_process/www
NAME=www
conf="/home/whc/test/server_process/server_process/www.conf"
start()
{
echo "start testServer";
daemon $DAEMON $conf
#$DAEMON &
}
stop()
{
killall www;
echo "stop testServer";
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "useage:$0 start|stop|restart"
exit 0;
esac
按照你说的,1实现守护进程2、使用daemon启动,3、终止时使用信号做清理资源操作
就上面的两个文件是否达到了服务程序的标准?
还有就是我试图在main.c中创建一个文件,然后往其中谢写数据,在程序终止时(测试信号是否接收到并处理)
#include
#include
#include
#include
#include
//是否停止服务程序的标识
int nStop = 1;
void sig_term(int anSigno)
{
nStop = 0;
printf("sig_term func n");
}
int main()
{
//实现守护进程
daemon(0,0);
//设置信号响应函数
signal(SIGTERM,sig_term);
FILE *fp = fopen("./test.txt","w+");
if(fp == NULL)
return -1;
while(nStop)
{
time_t timep;
time(&timep);
char *str = asctime(gmtime(&timep));
if(fwrite(str,1,strlen(str),fp)