Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5096567
  • 博文数量: 921
  • 博客积分: 16037
  • 博客等级: 上将
  • 技术积分: 8469
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-05 02:08
文章分类

全部博文(921)

文章存档

2020年(1)

2019年(3)

2018年(3)

2017年(6)

2016年(47)

2015年(72)

2014年(25)

2013年(72)

2012年(125)

2011年(182)

2010年(42)

2009年(14)

2008年(85)

2007年(89)

2006年(155)

分类: Python/Ruby

2012-09-10 15:34:32

 

有时候我们需要判断目标进程是否已经启动,如果没有启动才额外启动目标,否则skip

  通常情况下我们,可以在进程表中搜索目标进程即可

一、在elrang中,可以借助于 erlang:whereis 函数

whereis(RegName) -> pid() | port() | undefined
Returns the pid or port identifier with the registered name RegName. Returns undefined if the name is not registered.
例子:

  1. > whereis(db).
  2. <0.43.0>

举例如下:


  1. ensure_started(Args) ->
  2.     case erlang:whereis(?SERVER) of
  3.         undefined ->
  4.             {ok,Pid} = gen_server:start_link({local, ?SERVER}, ?MODULE, [Args], []),
  5.             Pid.

  6.         Pid when is_pid(Pid) ->
  7.              %%some trace here
  8.             Pid
  9.      end.




二、判断一个pid是否存在的方法:is_process_alive/1

例如:

is_process_alive(Pid)


阅读(1455) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~