【Linux】c++创建新线程执行sh脚本
- 前情提要 【Linux】profile.d加入循环shell脚本,重启登录黑屏
system
函数可以运行.sh脚本, 需要包含stdlib.h
- 因为我的.sh脚本里有循环, 不能放在主程序, 否则会阻塞, 所以要开一个线程去执行
pthread
不是linux标准库, 编译时需要链接库lpthread
// g++ test.cpp -lpthread // 可能需要链接这个库
#include<iostream>
#include<thread> // 新建线程需要
#include<stdlib.h> // 运行.sh文件
#include<unistd.h> // sleep函数
using namespace std;
void ntpdate_thread()
{
system("./start.sh");
}
int main(int argc, char const *argv[])
{
thread t(ntpdate_thread);
cout << "exit\n" << endl;
while (1)
{
cout << "main thread" << endl;
sleep(1);
}
return 0;
}