问题标签 [os.execl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 在 python 脚本中启动 shell 命令,等待终止并返回脚本
我有一个 python 脚本,它必须为目录中的每个文件启动一个 shell 命令:
这适用于第一个文件,但在“myscript”命令结束后,执行停止并且不会返回到 python 脚本。
我能怎么做?我必须fork()
以前calling os.execlp()
吗?
c++ - 告诉 execl() 进程何时退出
我有一个 C++ 应用程序,其中包含队列中的某些项目,然后这些项目将由 python 脚本处理。我希望它最多运行 10 个 python 脚本实例。我打算使用 execl() 来启动 python 进程,有没有办法告诉进程已经退出而不必将消息传递回父进程?
c - execl 在服务器端的 while(1) 循环中不起作用;C 脚本
我有一个小 C 脚本的问题,它应该作为服务器运行并为每条到达的消息启动一个弹出窗口。execl语法是正确的,因为如果我尝试一个小脚本
有用。
当我将它放入 while(1) 循环时,它不起作用。其他一切都在工作,比如printf
或字符串操作,但不是execl
. 即使我叉它也不起作用。我怎样才能让它工作?
我已经尝试过fork()
,但它也不起作用。
这是完整的服务器 C 代码。
python - 从 python 运行“源”
我有一个文件a.txt
,其中包含要运行的命令行,例如:
如果我在 csh (unix) 上,我会完成source a.txt
并且它会运行。我想从 python 运行os.execl
它,但是我得到:
怎么做?
python - os.execl 究竟做了什么?为什么我会收到此错误?
我在使用 virtualenv 在passenger_wsgi 模块上部署Django 时遇到了一些麻烦。应该解决我的问题的passenger_wsgi.py文件中的Python代码是:
前三行我理解,但我对第四行只有一个非常模糊的想法,而这恰好给我一个错误:
/home/login/.virtualenvs/env_name/bin/python: can't find '__main__.py' in ''
那么 os.execl 到底在做什么呢?那条错误消息是什么意思?
c - 利用系统调用创建进程的 C 程序
我想制作一个使用系统调用来创建进程的 C 程序。程序应该从命令行接收未确定数量的 Linux 命令,以根据用户输入的选项并行或按顺序执行它们。
执行命令 [-p|-s] 命令 1 命令 2
其中 p - 并行(对于每个命令,父进程必须创建一个执行相应命令的子进程。)
和 s - 序列(父进程应该为每个执行的命令创建子进程,但是运行第二个命令的进程将必须等待运行命令的进程完成第一个和第三个命令将不得不等待结束实施第二个等)
所以基本上我希望那个用户做类似的事情
./executeCommand -p ls\ -lisa cat\ fork.c
一些提示将不胜感激!
c++ - execlp 多个“程序”
我想运行类似的东西
我execlp
用来运行这个过程。
当我尝试运行类似的东西cat
时,它可以工作,但是如果我尝试运行 base64 -d | tar -zvt
它就不起作用。
我查看了 bash 命令,发现我可以运行 bash 并告诉他运行其他程序。所以它是这样的:
如果我在终端上运行它,它运行良好,但使用execlp
它不起作用。如果我使用execlp("cat", "cat", NULL)
它就可以了。
有人知道如何使用-c
execlp 上的参数来执行多个“程序”吗?我不能使用系统,因为我使用管道和叉子。
现在我注意到,如果我尝试使用 execlp("bash", "bash", "-c", "base64", NULL)... 什么也没有发生。如果我使用 execlp("cat", NULL) 没关系..我正在写入标准输入...我不知道 bash -c base64 是否有问题..因为如果我在终端回显上运行“asd” | bash -c "cat" 一切顺利
c - open() 首次尝试失败
open()
第一次尝试失败并显示 ENOENT(没有这样的文件或目录),但在后续尝试中工作正常。
我的程序分叉了一个子进程并等待子进程完成使用waitpid()
. 子进程使用在特定目录中创建从用户接收的文件路径的副本execl()
。
一旦子进程退出,父进程使用open()
. 但是,它在第一次尝试时以 ENOENT (没有这样的文件或目录)失败。我可以看到子进程在指定目录中创建了一个文件。
如果我通过提供相同的文件名再次运行该程序,那么它工作正常。我的问题是:为什么第一次尝试时不打开文件?我需要刷新目录还是它是什么?
我在红帽
这是一个 QUICK N DIRTY 代码片段
c++ - execl() 返回“无法打开或解析参数”错误
我有这段代码可以使用 execl() 运行程序,但我收到了这个错误:
而且,当我删除参数 3 时,我得到参数 2 的相同错误,知道吗?
我正在调试,显然第一次是 _pid 大于 0,为什么会这样?
linux - 如果找不到命令,execl 会做什么?
我已经阅读了手册页并进行了一些谷歌搜索。找不到任何东西。假设我使用实际上不包含 arg[0] 中指定的程序的路径参数运行 execl。
它会做什么?