javascript - 电子产生异常
问题描述
我正在尝试从我的电子应用程序运行一些 sh,我尝试了两种方法,但我仍然在努力解决脚本无法访问时发生的 enoent 异常以及我无法在我的代码中掌握的内容
首先我的工作树如下
electron_app
+
+ app
+ + batch
+ + + -process.js
+ + + -run_source.sh
+ other_folders
process.js 执行版本
const { execFile } = require('child_process');
cmd = './run_source.sh';
console.log([source, m3u8_source, folder])
const child = execFile(cmd, [source, m3u8_source, folder]);
console.log(child);
child.on('error', function (err) {
console.log('stderr: <' + err + '>');
});
child.stdout.on('data', function (data) {
console.log(data);
let pid;
if (data.search("pid=") !== -1) pid = data.substring(data.search("pid="), data.lenght);
console.log(pid)
});
child.stderr.on('data', function (data) {
console.log('stderr: <' + data + '>');
});
child.on('close', function (code) {
if (code == 0)
console.log('child process complete.');
else
console.log('child process exited with code ' + code);
});
process.js 生成版本
const process = require('child_process');
var child = process.spawn(cmd,[source,m3u8_source,folder]);
//the same code above
我的控制台记录以下内容
标准错误:错误:spawn ./run_source.sh ENOENT 子进程以代码 -2 退出
我已经 chmoded +x 我的 sh 脚本
该怎么办 ??
解决方案
最后
const path = require('path');
const run_source = path.join(__dirname, 'run_source.sh');
像这样获得正确的 sh 路径解决了这个问题
推荐阅读
- arrays - Arry,如何设置带有 4 个组件的pickerView?迅速
- python - 带有 ffill 的 Pandas fillna 增加了噪音
- c++ - 神秘的 C++ 线程崩溃
- javascript - 如何在 lodash 中使用 orderBy 替换空值
- logstash - 用于执行输入的 grok 过滤器
- c# - 自定义查询扩展,与 NHibernate 一起使用
- powershell - 在非交互环境中使用 AZ 模块?
- jquery - 将鼠标悬停在自动完成输入上时,Div 消失
- amazon-timestream - AWS Timestream DB - 存储空值 - Python
- google-cloud-platform - 谷歌分析数据集类型 (CRMint)