小编Nel*_*son的帖子

Bash 在子 shell 内的后台运行命令

我希望能够在子 shell 中设置进程,就好像它不在子 shell 中一样。

$( sleep 3 & )只是忽略 & 符号。

我试过了:

$( sleep 3 & )
$( sleep 3 & ) &
$( sleep 3 ) &
Run Code Online (Sandbox Code Playgroud)

但没有任何改变。

然后我尝试$( disown sleep 3 & )返回

disown:无法操作子 shell 中的作业

这促使我尝试$( set -m; disown sleep 3 & ),但得到了相同的输出。

我什至尝试创建一个可以自行守护的 C++ 程序:

#include <unistd.h>
#include <chrono>
#include <thread>
using namespace std;

int main() {
    int ret = fork();
    if (ret < 0) return ret;  // fork error …
Run Code Online (Sandbox Code Playgroud)

c++ bash subprocess process subshell

3
推荐指数
1
解决办法
4080
查看次数

g++ - Python.h:没有这样的文件或目录

我正在尝试制作一个 C++ 脚本来运行一些简单的 Python 代码:

// t.cpp
#include <Python.h>

int main(int argc, char* argv[])
{
    Py_Initialize();
    PyRun_SimpleString("print('TEST PASSED')");
    Py_Finalize();

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

运行后g++ t.cpp,我收到错误:

t.cpp:1:20:致命错误:Python.h:没有这样的文件或目录

编译终止

我发现了许多类似的问题,全部特定于 IDE 或其他开发软件,或者通过安装python3-dev. 该python3-dev软件包已经安装,我什至尝试在尝试编译时手动包含标头:

g++ t.cpp -I ~/.virtualenvs/MainEnv/include/python3.5m/Python.h
g++ t.cpp -I /usr/include/python3.5m/Python.h
Run Code Online (Sandbox Code Playgroud)

两者都没有改变任何东西。

我该如何修复这个错误?

更新:我发现 usingg++ t.cpp -I /usr/include/python3.5/似乎包含标头,但随后遇到更多错误:

t.cpp:(.text+0x10): 对“Py_Initialize”的未定义引用

t.cpp:(.text+0x1f): 对 `PyRun_SimpleStringFlags' 的未定义引用

t.cpp:(.text+0x24): 对 `Py_Finalize' 的未定义引用

collect2:错误:ld 返回 1 退出状态

c++ ubuntu g++ python-3.x

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

c++ ×2

bash ×1

g++ ×1

process ×1

python-3.x ×1

subprocess ×1

subshell ×1

ubuntu ×1