运行Erlang的程序

简介: 版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载。 https://blog.
版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载。 https://blog.csdn.net/wireless_com/article/details/44098143

运行Erlang程序的方式:

1)      在Erlang shell 中编译执行

2)      Shell 脚本执行,例

Hello.sh

#!/bin/sh

Erl –noshell –pa /home/abel/practice/erlang/code –s hllstart –s init stop

3)      作为Escript 运行,例

#!/usr/bin/env escript

Main(args)->

Io:format(“Hello world ~n”)

 

内置函数apply能调用某个模块的某个函数并传参。每个erlang进程都有一个被称为进程字典的私有数据存储区。为了增强类型的表达能力,可以用描述性变量给它们加上注解,类型规范为spec,类型说明type。通过dialyzer可以检查程序中的类型错误,最好写模块时先考虑类型并声明它们,然后编写代码。两个载入路径的函数:

-spec code:add_patha(Dir)=>true|{error:bad_directory} 载入路径头加入

-spec code:add_pathz(Dir)=>true|{error:bad_directory} 载入路径尾加入

通过os:cmd(command)可以在erlang中调用shell的脚本,查找标准库源码的命令code:which(file).


Make 是erlang的任务自动化工具,可以通过它来运行程序。下面是一个简单的makefile:

.SUFFIXES: .erl .beam

.erl .beam:

        erlc  -W $<

ERL = erl –boot start_clean

MODS = module1 module2 module3

all: compile

        $(ERL)  –pa    ‘home/abel/…/dir’–s module1 start

 

compile: ${MODS:%=%.beam}

 

clean:

        rm  -rf *.beam erl_crash.dump

 

如果Erlang程序崩溃了,会留下一个erl_crash.dump文件,可以通过web故障分析器来分析,命令如下:

1>    crashdump_viewer:start().

目录
相关文章
|
机器学习/深度学习 Linux Python
服务器上后台运行python程序
服务器上后台运行python程序
744 0
|
5月前
|
消息中间件 存储 Python
详解Python TimedRotatingFileHandler多进程环境下的问题和解决方法
`TimedRotatingFileHandler`在单进程应用中非常有用,但在多进程环境下直接使用可能会遇到挑战。以上提到的方案可以根据具体情况选取,解决在多进程环境下的日志文件管理问题。综合考虑,采用外部日志管理工具或集中式日志记录方案通常更为稳健和有效,尤其适用于大型或复杂的系统架构。
338 3