Rabbitmq 如何将shell脚本变量传递给erlang:exit()?

Rabbitmq 如何将shell脚本变量传递给erlang:exit()?,rabbitmq,erlang,Rabbitmq,Erlang,我正在尝试使用命令rabbitmqctl eval'erlang:exit(c:pid(“$pid”),kill)删除RMQ中卡住的进程。但出现以下错误 Error: {:undef, [{:c, :pid, ['0,159,0'], []}, {:erl_eval, :do_apply, 6, [file: 'erl_eval.erl', line: 680]}, {:erl_eval, :expr_list, 6, [file: 'erl_eval.erl', line: 888]}, {:

我正在尝试使用命令
rabbitmqctl eval'erlang:exit(c:pid(“$pid”),kill)删除RMQ中卡住的进程。
但出现以下错误

Error:
{:undef, [{:c, :pid, ['0,159,0'], []}, {:erl_eval, :do_apply, 6, [file: 'erl_eval.erl', line: 680]}, {:erl_eval, :expr_list, 6, [file: 'erl_eval.erl', line: 888]}, {:erl_eval, :expr, 5, [file: 'erl_eval.erl', line: 411]}, {:erl_eval, :exprs, 2, []}]}
有没有办法解决这个错误?我做错了什么?

接受3个整数,而不是字符串,如果要使用字符串,请使用

这里的问题是你想打电话

c:pid(“0159,0”),
而且应该是

c:pid(0159,0)

list_to_pid(“”)
exit/2
接受两个参数:一个
pid
和任何erlang术语(例如atom
kill
)。
pid
既不是字符串也不是整数,而是它自己的类型,由一些函数返回,如
self/0
。erlang向shell输出一个pid,如下所示:

<0.64.0>
erlang:exit('$pid',kill)

我想到了c:pid(“0159,0”),怀疑tat可能就是原因。但我仍然有一个问题,如何传递Pid,使其可以是
c:Pid(0159,0)
list\u to\u Pid(“”
)。。我正在尝试这种方法
rabbitmqctl eval'erlang:exit(list_to_pid(“$pid”),kill)。
。但是仍然不起作用。@dharpatel如果您的$pid变量是
0.159.0
(注意点),并且您使用
list\u-to\u-pid
,那么您缺少了所包含的
$erl-eval'退出(list\u-to\u-pid(“”,kill)。
@dharpatel如果您使用逗号(
0159,0
),您可以使用
c:pid>:
erl-eval'退出(c:pid>)(“$PROCESS_ID'),kill)。
谢谢Jose。这个问题已经通过
erlang:exit(c:pid(“$pid'),kill)
解决了。但是您建议的替代命令也会起作用。谢谢您的帮助。
“$pid'”
的类型和值是什么。查看错误消息,它看起来像一个字符串,在本例中是
erlang:exit(c:pid>)(list_to_pid(“$pid”),kill)
应该可以工作
rabbitmqctl eval'erlang:exit('$pid',kill)。
也不工作。它给了我一个错误。
错误:{:unde,[{:erlang,:exit,[0,159,0,:kill],{:erl_eval,:do_apply,6,[文件:'erl_eval.erl',行:680]},{:erl(erl)erl eval,:exprs,2,[]
我得到了解决方案。基本上
erlang:exit('$pid',kill)
给出了
unde
错误。所以我需要通过
erlang:exit(c:pid('$pid'),kill)定义乐趣。
解决了问题。
erlang:exit('$pid',kill)