如何让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'


相关文章
|
9天前
|
安全 Java 数据处理
Python网络编程基础(Socket编程)多线程/多进程服务器编程
【4月更文挑战第11天】在网络编程中,随着客户端数量的增加,服务器的处理能力成为了一个重要的考量因素。为了处理多个客户端的并发请求,我们通常需要采用多线程或多进程的方式。在本章中,我们将探讨多线程/多进程服务器编程的概念,并通过一个多线程服务器的示例来演示其实现。
|
2月前
|
安全 Apache
Metasploit -- 对Apache HTTP服务器守护进程中断复现
Metasploit -- 对Apache HTTP服务器守护进程中断复现
20 0
|
2月前
|
弹性计算 开发框架 负载均衡
ECS配置问题之aspacess运行失败如何解决
ECS配置指的是对阿里云Elastic Compute Service(弹性计算服务)实例的硬件和软件资源进行设置的过程;本合集将详述如何选择合适的ECS配置、调整资源配比以及优化实例性能,以满足不同应用场景的需求。
|
28天前
|
存储 监控 Linux
【Shell 命令集合 系统管理 】⭐⭐⭐Linux 查看当前正在运行的进程信息 ps命令 使用指南
【Shell 命令集合 系统管理 】⭐⭐⭐Linux 查看当前正在运行的进程信息 ps命令 使用指南
42 0
|
2月前
|
Linux
百度搜索:蓝易云【Linux系统ps命令:查看正在运行的进程】
通过这些简洁的ps命令用法,你可以方便地查看Linux系统中正在运行的进程信息。
33 1
|
3月前
|
云安全 监控 负载均衡
游戏运行只会占用到服务器里面一个核心使用,其他核心不工作,是什么问题
游戏运行只占用服务器的一个核心,而其他核心不工作,可能有多种原因。以下分享一些常见的原因和处理的方案
|
1月前
|
Linux 网络安全 Python
如何在服务器上运行python文件
如何在服务器上运行python文件
|
消息中间件 监控 安全
探究如何在Linux系统中修改进程资源限制:四种方法调整进程限制,让你的系统高效运行(包含应用层getrlimit和setrlimit API)
探究如何在Linux系统中修改进程资源限制:四种方法调整进程限制,让你的系统高效运行(包含应用层getrlimit和setrlimit API)
43 0
|
2月前
|
数据库
服务器进程概述
服务器进程概述

热门文章

最新文章