咏南中间件随LINUX开机自动启动

LINUX DEAMON,LINUX也有类似WINDOWS的服务。

program ynCrossServer;
{$HINTS OFF}
{$APPTYPE CONSOLE} {$R *.res} uses
{$IFDEF MSWINDOWS}
MidasLib,
{$ENDIF }
{$IFDEF POSIX}
Posix.Unistd,
{$ENDIF}
uPlugHelp,
uUnidacPool,
Web.WebReq,
IdHTTPWebBrokerBridge,
uLog,
System.SysUtils,
WebservicesImpl in 'WebservicesImpl.pas',
WebservicesIntf in 'WebservicesIntf.pas',
WebModuleUnit1 in 'WebModuleUnit1.pas' {WebModule1: TWebModule},
uWebservices in 'uWebservices.pas' {ynWebServices: TDataModule},
uIDTcpSvr in 'uIDTcpSvr.pas' {idTcpSvr: TDataModule},
uIDHttpSvr in 'uIDHttpSvr.pas' {idHttpSvr: TDataModule},
uCrossHttpSvr in 'uCrossHttpSvr.pas' {crossHttpSvr: TDataModule},
uCrossTcpSvr in 'uCrossTcpSvr.pas' {crossTcpSvr: TDataModule},
uCrossWebSckSvr in 'uCrossWebSckSvr.pas' {CrossWebSckSvr: TDataModule}; {$IFDEF POSIX}
procedure daemon;
begin
try
if WebRequestHandler <> nil then
WebRequestHandler.WebModuleClass := WebModuleClass;
TUnidacPool.SetDBParams;
Log := TLog.Create;
uPlugHelp.LoadPlugs;
// ynWebServices := TynWebServices.Create(nil);
// crossTcpSvr := TcrossTcpSvr.Create(nil);
crossHttpSvr := TcrossHttpSvr.Create(nil);
// CrossWebSckSvr := TCrossWebSckSvr.Create(nil);
repeat
sleep(10000);
until False;
finally
if idTcpSvr <> nil then
FreeAndNil(idTcpSvr);
if idHttpSvr <> nil then
FreeAndNil(idHttpSvr);
if ynWebServices <> nil then
FreeAndNil(ynWebServices);
if crossHttpSvr <> nil then
FreeAndNil(crossHttpSvr);
if crossTcpSvr <> nil then
FreeAndNil(crossTcpSvr);
if CrossWebSckSvr <> nil then
FreeAndNil(CrossWebSckSvr);
uplughelp.UnloadPlugs;
var i: Integer;
for i := 0 to Length(DBPoolArray) - 1 do
FreeAndNil(DBPoolArray[i]);
FreeAndNil(log);
end;
end;
var pid: Cardinal;
{$ENDIF} begin
{$IFDEF MSWINDOWS}
if WebRequestHandler <> nil then
WebRequestHandler.WebModuleClass := WebModuleClass;
TUnidacPool.SetDBParams;
Log := TLog.Create;
uPlugHelp.LoadPlugs;
//idHttpSvr, crossHttpSvr,要绑定不同的端口,才能同时存在
// idTcpSvr := TidTcpSvr.Create(nil);
// idHttpSvr := TidHttpSvr.Create(nil);
// ynWebServices := TynWebServices.Create(nil);
// crossTcpSvr := TcrossTcpSvr.Create(nil);
crossHttpSvr := TcrossHttpSvr.Create(nil);
// CrossWebSckSvr := TCrossWebSckSvr.Create(nil);
try
Writeln('输入exit,按回车链,退出程序');
var s: string;
while True do
begin
Readln(s);
if sametext('exit', s) then
begin
Break;
end
else
Writeln('无法识别的命令');
end;
finally
if idTcpSvr <> nil then
FreeAndNil(idTcpSvr);
if idHttpSvr <> nil then
FreeAndNil(idHttpSvr);
if ynWebServices <> nil then
FreeAndNil(ynWebServices);
if crossHttpSvr <> nil then
FreeAndNil(crossHttpSvr);
if crossTcpSvr <> nil then
FreeAndNil(crossTcpSvr);
if CrossWebSckSvr <> nil then
FreeAndNil(CrossWebSckSvr);
uplughelp.UnloadPlugs;
var i: Integer;
for i := 0 to Length(DBPoolArray) - 1 do
FreeAndNil(DBPoolArray[i]);
FreeAndNil(log);
end;
{$ENDIF}
{$IFDEF POSIX}
pid := fork;
if pid = 0 then
begin
writeln('starting service');
daemon;
end;
{$ENDIF}
end.

  

1)将中间件部署文件复制到 /usr/yn/ 目录

2)创建并编辑/usr/lib/systemd/system/yn.service文件

[UNIT]
#服务描述
Description=ynCrossMiddleWare
#指定了在systemd在执行完那些target之后再启动该服务
After=MiddleWare [Service]
#定义Service的运行类型,一般是forking(后台运行)
Type=forking #定义systemctl start|stop|reload *.service 的执行方法(具体命令需要写绝对路径)
#注:ExecStartPre为启动前执行的命令
ExecStart=/usr/yn/ynCrossServer -start
ExecReload=/usr/yn/ynCrossServer -reload
ExecStop=/usr/yn/ynCrossServer -stop #创建私有的内存临时空间
PrivateTmp=True [Install]
#多用户
WantedBy=multi-user.target

  重载系统服务:systemctl daemon-reload

人工启动服务:systemctl start yn.service
人工停止服务:systemctl stop yn.service
人工重启服务:systemctl reload yn.service

设置开机启动:systemctl enable yn.service

咏南中间件随LINUX开机自动启动的更多相关文章

  1. 咏南中间件+开发框架支持最新的DELPHI XE10.1(BERLIN) UPDATE1

    咏南中间件+开发框架支持最新的DELPHI XE10.1(BERLIN) UPDATE1 购买提供:中间件源码,价格十分优惠!有意者请向本人索取演示程序! 附带福利(赠送): CS开发框架源码BS开发 ...

  2. delphi 10.1 berlin最新的开发框架:咏南中间件+咏南开发框架,购买后提供全部的源码

    咏南中间件+咏南开发框架支持最新的delphi 10.1(berlin),老用户提供免费升级. 购买提供:中间件源码 附带福利(赠送): CS开发框架源码BS开发框架源码移动APP源码中间件集群源码二 ...

  3. 专门为ADO二层升三层的咏南中间件(特种用途)

    专门为ADO二层升三层的咏南中间件(特种用途) 演示下载:链接: https://pan.baidu.com/s/1bulGBIZ6A1nkeErxIrGsGA 密码: 22dk 解压后运行ynmai ...

  4. 咏南中间件支持JWT TOKEN

    咏南中间件支持JWT TOKEN

  5. 咏南中间件JSON序列类

    咏南中间件JSON序列类 1)支持跨平台.跨语言 2)支持主从表数据序列.还原,支持任意数量的表 主从表数据序列为JSON字符串样式: { "rows": [ { "FD ...

  6. 咏南中间件新增MORMOT移动端演示

    咏南中间件新增MORMOT移动端演示 基于FMX,支持安卓.IOS移动端. 1)使用INDY 的HTTP控件进行查询: procedure TForm1.查询1Click(Sender: TObjec ...

  7. 咏南中间件支持DELPHI6及以上版本开发的客户端

    咏南中间件支持DELPHI6及以上版本开发的客户端 下面是测试用DELPHI7开发的客户端,调用DELPHI10.3.1开发的中间件,完全兼容. 这样,有利于维护原来用D7开发的老程序. 如上所述,只 ...

  8. 咏南中间件开始支持redis client接口调用

    咏南中间件开始支持redis client接口调用 咏南中间件封装了redis client接口,可以支持REDIS了. 如下图,将数据集写入REDIS缓存,和从REDIS缓存获取数据: proced ...

  9. 咏南中间件支持TMS WEB CORE客户端

    咏南中间件支持TMS WEB CORE客户端 TMS WEB CORE是优秀的JS前端,搭配咏南中间件后端,可以进行快速的企业应用开发.

随机推荐

  1. Linux磁盘管理——BIOS和UEFI

    参考:BIOS and UEFI - CompTIA A+ 220-901 - 1.1 BIOS and UEFI As Fast As Possible 严格上来说BIOS和UEFI除了在搜索boo ...

  2. 用js刷剑指offer(丑数)

    题目描述 把只包含质因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含质因子7. 习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. 思路 ...

  3. python网络-静态Web服务器案例(29)

    一.静态Web服务器案例代码static_web_server.py # coding:utf-8 # 导入socket模块 import socket # 导入正则表达式模块 import re # ...

  4. 手把手教用C#编写Windows服务 并控制服务 安装、启动、停止、卸载

    Windows服务 Microsoft Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序.这些服务可以在计算机启动时自动启动, ...

  5. 开发搭建环境之springboot配置logback日志管理

    首先书写logback-spring.xml文件为: <?xml version="1.0" encoding="UTF-8"?><confi ...

  6. 在输出debug日志前加上logger.isDebugEnabled()判断的原因

    场景: String token = md5.substring(0, 10) + base64Two + md5.substring(10); if (logger.isDebugEnabled() ...

  7. 《你说对就队》第八次团队作业:Alpha冲刺

    <你说对就队>第八次团队作业:Alpha冲刺 项目 内容 这个作业属于哪个课程 [教师博客主页链接] 这个作业的要求在哪里 [作业链接地址] 团队名称 <你说对就队> 作业学习 ...

  8. 《发际线总是和我作队》第九次作业:Beta冲刺Scrum Meeting3

    项目 内容 这个作业属于哪个课程 软件工程 这个作业的要求在哪里 实验十三 团队作业9:Beta冲刺与团队项目冲刺 团队名称 发际线总和我作队 作业学习目标 (1)掌握软件黑盒测试技术:(2)掌握软件 ...

  9. 「AHOI / HNOI2017」礼物

    「AHOI / HNOI2017」礼物 题目描述 我的室友最近喜欢上了一个可爱的小女生.马上就要到她的生日了,他决定买一对情侣手环,一个留给自己,一个送给她.每个手环上各有 n 个装饰物,并且每个装饰 ...

  10. 【小技巧】O(1)快速乘

    问题:求 \(a\times b\bmod p\),\(a,b,p\) 在 long long 范围内. 在 CRT 等算法中应用广泛. 为了处理模数在 int 范围外的情况,就是两数相乘可能会爆 l ...