如何让Erlang服务器程序在后台运行,即实现守护进程的形态运行(★firecat推荐★)

简介: 如何让Erlang服务器程序在后台运行,即实现守护进程的形态运行(★firecat推荐★)

我们知道当创建erlang module时,让其在后台运行的方法是:


终端输入命令:erl -detached -s hello start


注:-s hello start运行hello:start()函数,-detached是后台运行的意思.


但是当我们创建erlang application程序呢?如何实现后台运行?上述的方法可就不灵了。参考文章:Erlang/OTP 构建 Application


解决办法如下,我们采取JCL mode的方式:


参考文章:erlang 接入远程shell控制台(请重点学习作业JCL模式)




一、准备工作


采用分布式,erlang node。正式程序运行在Linux,通过Windows远程控制Linux。


Windows的ip地址是192.168.0.189,节点命名为firecat@192.168.0.189


Linux的ip地址是192.168.0.127,节点命名为helloba@192.168.0.127


centos7关闭防火墙:sudo systemctl stop firewalld.service

windows终端环境使用werl命令,Linux终端使用erl

ctrl+G进入JCL mode,q退出JCL




二、具体实施


linux终端:(IP addr-192.168.0.127)守护进程,隐藏erlang shell进程

先以detached运行一个节点

erl -name helloba@192.168.0.127 -setcookie abc -detached


检查这个erlang进程是否运行

ps -ef | grep beam


kill 命令用于终止进程

例如: kill -9 [PID]

-9 表示强迫进程立即停止


windows终端:(IP addr-192.168.0.189)

werl -name firecat@192.168.0.189 -setcookie abc

ctrl+G

--> r 'helloba@192.168.0.127'

--> c

然后输入终端命令application:start(tcp_server).


如此一来,便实现了erlang后台运行程序。

如果windows节点想切换回来也是用


Ctrl+G

--> r 'firecat@192.168.0.189'

--> c


退出使用


--> q




三、知识延伸


注意,-name的值必须是xxxx@ip的形式。其中xxxx是英文名,ip必须是数字和点的形式。如果是可以解析的有效域名应该也是可以的,但我试了用localhost会不能被正常连接。同时,这个ip也必须是客户端能访问到的有效ip,否则同样不能成功连接。




补充说明:

如果仅仅想在linux本机实现节点互联访问,也是可以的:

erl -name helloba@127.0.0.1 -setcookie abc -detached

erl -name test@127.0.0.1 -setcookie abc

ctrl+G

r 'helloba@127.0.0.1'


相关文章
|
1月前
|
存储 监控 安全
服务器维护是确保服务器稳定运行、数据安全和性能优化的重要过程
【10月更文挑战第4天】服务器维护是确保服务器稳定运行、数据安全和性能优化的重要过程
124 65
|
9天前
|
自然语言处理 编译器 应用服务中间件
PHP在服务器上的运行过程
PHP在服务器上的运行过程
28 7
|
1月前
|
存储 弹性计算 算法
前端大模型应用笔记(四):如何在资源受限例如1核和1G内存的端侧或ECS上运行一个合适的向量存储库及如何优化
本文探讨了在资源受限的嵌入式设备(如1核处理器和1GB内存)上实现高效向量存储和检索的方法,旨在支持端侧大模型应用。文章分析了Annoy、HNSWLib、NMSLib、FLANN、VP-Trees和Lshbox等向量存储库的特点与适用场景,推荐Annoy作为多数情况下的首选方案,并提出了数据预处理、索引优化、查询优化等策略以提升性能。通过这些方法,即使在资源受限的环境中也能实现高效的向量检索。
|
1月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
35 1
|
1月前
|
SQL 分布式计算 NoSQL
大数据-170 Elasticsearch 云服务器三节点集群搭建 测试运行
大数据-170 Elasticsearch 云服务器三节点集群搭建 测试运行
41 4
|
1月前
|
SQL 分布式计算 大数据
大数据-168 Elasticsearch 单机云服务器部署运行 详细流程
大数据-168 Elasticsearch 单机云服务器部署运行 详细流程
53 2
|
16天前
|
Ubuntu 关系型数据库 MySQL
如何选择适合CMS运行的服务器?
在数字互联网时代,企业与单位都需要搭建企业官网在互联网上展示自己的品牌和产品宣传。除去了传统建设公司开发网站外,使用CMS就成为常用的网站创建方式。而成功的网站除了选对CMS外,还需要考虑到搭建完CMS的服务器。今天的文章给大家介绍:如何选择CMS和服务器: 很多客户都不清楚是选择CMS还是先选择服务器?
|
2月前
|
Linux Shell
6-9|linux查询现在运行的进程
6-9|linux查询现在运行的进程
|
1月前
|
前端开发 Java Shell
后端项目打包上传服务器部署运行记录
后端项目打包上传服务器部署运行记录
32 0
|
1月前
|
NoSQL Linux 程序员
进程管理与运行分析
进程管理与运行分析
23 0