在Perl中运行此命令的正确方法是什么,没有错误返回

J

我正在尝试使用Perl中的永久用户作为特定用户来启动NodeJS服务器

这是我第一次使用Perl编程,因此可能很容易解决。我已经浏览了许多示例,但是我看到的只是关于函数system和的冲突信息exec

在我的Perl模块文件中,我同时尝试了systemexec

使用系统

sub start_server {
    my ( $result ) = @_;

    my $return = system("forever --uid nodejs-34534 -a start /path/to/server.js");

    $result->data($return);

    return 1;
}

我应该如何forever --uid nodejs-34534 -a start /path/to/server.js在Perl中运行命令它不返回任何内容或显示任何错误,并且例如运行其他命令可以echo "$user"正常工作,并返回运行Perl脚本的用户的当前用户名。

更新:

在下面的许多注释以及指向正确方向的大量指针之后,我使用了错误的函数来获取所需的输出。我应该一直在使用数组变量和反引号,这要感谢@zdim指出。这就解决了看不到执行的命令输出的问题。

使用反引号进行了更正:

sub start_server {
    my ( $result ) = @_;

    my @output = `forever --uid nodejs-34534 -a start /path/to/server.js`;

    $result->data( \@output );

    return 1;
}

然后另一个问题暴露出来,在@Borodin声明我应该根据需要创建脚本和模块并测试其是否可以正常运行之后,调用了该命令,但是在接收到输出后将其停止。创建切回模块并运行它之后,执行的命令仍然有效,所以现在我知道它不有效的问题归结于我尝试扩展的Perl API。

关于如何确定我要扩展的Perl API为何停止该过程,是否有任何想法?

宁静卫星

要将命令的输出存储在变量中时,请使用反引号更改系统:

my $return = `forever --uid nodejs-34534 -a start server.js`;

请参阅此内容以了解systembacktickshttps : //stackoverflow.com/a/800105/4248931

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

错误还是没有错误?Maven安装输出中的此不可读行是什么意思?

忽略没有返回值的语句的错误的正确方法是什么?

char c = 7; 为什么此语句将在Java中执行而没有错误?

为什么此代码在C ++ 17中编译时没有错误?

Java 8:没有错误-为什么此for循环会永远运行并且什么都不显示?

是什么导致我的应用崩溃而没有错误

C代码编译没有错误,但运行不正确(命令行参数和指针)

我的错误是什么,如何使此代码正确运行?

字符串数组中的冒泡排序算法没有错误运行,但什么也不做

Angular 9-拦截器-如果catcherror中没有错误,返回什么?

为什么subprocess.run返回退出代码2,但日志中没有错误?

Maven命令mvn从终端运行时没有错误,但没有从python运行

Java GUI正在启动,但是什么也没有出现,堆栈跟踪中没有错误

没有错误,但代码无法运行,应用程序启动方法JavaFX中的异常

glCheckFramebufferStatus返回0,并且glGetError中没有错误

在Phoenix中没有重定向的情况下,在POST操作中响应错误页面的正确方法是什么?

TensorFlow 没有运行正确数量的纪元且没有错误

为什么此代码有错误?

YouTube javascript没有返回正确的错误代码(所有错误均为0)

在反应应用程序中修复此“无效挂钩调用”错误的正确方法是什么?

为什么在IDLE中运行此脚本时为什么没有收到错误消息?

处理 JSON API 响应的最佳方法是什么,无论是否有错误都返回 200

如何使此代码工作以存储在Laravel中。没有错误也没有存储

此功能有什么问题?它使我的程序崩溃而没有错误

Steam不运行,没有错误

如果没有错误,则返回Golang

为什么此登录表单会失败且没有错误?

为什么C标准允许此代码编译时没有错误?

为什么此代码可以编译直至C ++ 17且没有错误?