erlang应用程序启动
(1)erlang应用程序启动过程中,还可以分阶段启动。
在erlang应用程序的资源文件*.app可以定义分步骤启动。
*.app中的start_phase字段的值可以指定多个参数分别启动
start_phase的调用时机是在start之后调用的。
(2)erlang是一种分布式语言,在启动应用程序时感觉与C/C++/Java/python都有很大的区别,因为没有main函数
其实这是一个已经可以发布的应用程序与非发布式程序的区别。
如果是一个已经发布的应用程序,安装后启动时,还是有main函数的。
类似Java,Java JVM是用C语言开发的,erlang虚拟机也是用C开发的,非发布的应用程序启动,
诸如:application:start(appName),这是在虚拟机里启动的。
erl其实是个shell脚本,在erl脚本中它实际调用的是erlexec,这个程序的入口是erlexec.c。
erlexec的main函数首先解析命令行传入的参数和环境变量,然后寻找beam可执行文件,
然后就通过execv运行Beam虚拟机,erlexec就是个加载器,在这个过程中就会将命令行参数传递给虚拟机中的init进程。
这个时候发现erlang就像是一个操作系统,linux操作系统中也有init进程。
【转】http://blog.chinaunix.net/uid-25418340-id-3517908.html
erlang应用程序启动的更多相关文章
- Erlang虚拟机的启动
Erlang虚拟机的启动 erl实际上是一个shell脚本,设置几个环境变量之后,调用执行erlexec.erlexec的入口点在 otp_src_R15B01/erts/etc/common/erl ...
- 用 rebar 来构建、编译、测试、发布 Erlang 应用程序
转自:http://dhq.me/build-compile-eunit-release-erlang-application-with-rebar rebar 是一个遵循 Erlang/OTP 原则 ...
- ASP.NET Core 中文文档 第三章 原理(1)应用程序启动
原文:Application Startup 作者:Steve Smith 翻译:刘怡(AlexLEWIS) 校对:谢炀(kiler398).许登洋(Seay) ASP.NET Core 为你的应用程 ...
- 应用程序启动管理 Winform版
★前言 开发这个小工具的想法主要是机器中安装了数据库,每次设置开机启动数据库服务的话,则系统启动很慢,每次都得手动到服务管理器中停止服务,很是繁琐,相信不少做开发的朋友会遇到同样的问题,就有 ...
- IOS程序启动原理
1.Info.plist 建立一个工程后,会在Supporting files文件夹下看到一个“工程名-Info.plist”的文件,该文件对工程做一些运行期的配置,非常重要,不能删除 常见属性(红色 ...
- iOS程序启动过程
First, the function creates the main application object (step 3 in the flowchart). If you specify ni ...
- 详解 IOS 7.1 程序启动原理
程序都是从Main方法入口的 IOS 也不例外 int main(int argc,char * argv[]) { @autoreleasepool { return UIApplicationMa ...
- VC++ 实现VC程序启动时最小化到任务栏(完美解决闪烁问题)
之前写的一个VC应用程序,是程序启动时就直接出现在任务栏, 窗体不出现,等用户点击任务栏图标再出现窗口.和一些防火墙什么的软件类似. 这种效果实现并不是很困难的,硬是找不到最好的.为什么呢? 首先,在 ...
- iOS app 程序启动原理
iOS app 程序启动原理 Info.plist: 常见设置 建立一个工程后,会在Supporting files文件夹下看到一个"工程名-Info.plist"的文件, ...
随机推荐
- grep正则 以.o结尾的文件
ls -l | grep *.o 查不出任何东西 . 代表一定有一个任意字符 * 重复零个到无穷多个前一个字符(所以需要前面有字符) 所以应该是 ls -l | grep '.*\.o' .*表示零个 ...
- git,提交错了分支,想把远程的分支恢复到上一个版本
1.先将本地分支回滚到上一个版本 2.删除远程分支(可以先备份一下) 3.创建新的分支,将本地分支push上去
- python2和python3同时存在电脑时,安装包时的的命令行
若是在Python2中使用pip操作时,用pip2或是pip2.7相关命令. 例:给Python2安装selenium,在cmd中输入 pip2 install selenium 或是 pip2.7 ...
- 浅谈SAP CRM和Hybris Commerce里的价格架构折扣
最近Jerry做了一个和价格折扣相关的原型项目,把学到的知识记录下来,以备将来查阅. 在这个原型项目里,我们用React-Native开发了一个移动应用,用户可以在手机上浏览SAP Hybris Co ...
- cf 811c Vladik and Memorable Trip
原题链接:http://codeforces.com/contest/811/problem/C 题意:将数组中的连续数字连成若干个“线段”(或者不连),其实就是区间.区间必须满足对于其中的任意数字, ...
- 20175203 2018-2019 实验三 《敏捷开发与XP实践》
20175203 2018-2019 实验三 <敏捷开发与XP实践> 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课 ...
- Windows10下安装CentOS7双系统
参考: 参考1 参考2 问题1
- 全面了解python中的类,对象,方法,属性
全面了解python中的类,对象,方法,属性 python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象...... 我们通过描述属性( ...
- Charles重发请求
1.如下图 2.选中某个接口,右键--选择 Repeat Advanced选项,设置请求多次 3.
- (appium+python)UI自动化_01_自动化环境搭建【MAC版】
Appium简介 Appium是一个开源的.跨平台的测试框架,主要用来进行app UI自动化,适用于原生应用.混合应用和移动网页应用(H5页面).目前支持Python.JavaScript.Objec ...