node.js - 如何修复nodejs exec中的“xinit:无法连接到X服务器”
问题描述
我的 Xserver 不是从 nodejs 脚本开始的。我必须以 root 身份运行它,否则会出现以下错误:
/usr/lib/xorg/Xorg.wrap:只允许控制台用户运行X服务器
所以我开始脚本
须藤节点控制器.js
首先我启动我的控制器来运行一个语言环境网络服务器。然后我想启动我的 Xorg 服务器并按照 xinit 命令运行我的 chromium-browser。
const http = require('http');
const fs = require('fs');
const path = require('path');
const config = require('./config.json');
const shell = require('shelljs');
http.createServer(function (request, response) {
var filePath = '.' + request.url;
if(filePath == './'){
filePath = config.baseFile;
}
var extname = path.extname(filePath);
var contentType='text/html';
switch(extname){
case '.js':
contentType = 'text/javascript';
break;
case '.css':
contentType = 'text/css';
break;
case '.json':
contentType = 'application/json';
break;
case '.png':
contentType = 'image/png';
break;
case '.jpg':
contentType = 'image/jpg';
break;
case '.wav':
contentType = 'audio/wav';
break;
}
fs.readFile(filePath, function(error, content) {
if (error) {
if(error.code == 'ENOENT'){
fs.readFile('./404.html', function(error, content) {
response.writeHead(200, { 'Content-Type': contentType });
response.end(content, 'utf-8');
});
}
else {
response.writeHead(500);
response.end('Sorry, check with the site admin for error: '+error.code+' ..\n');
response.end();
}
}
else {
response.writeHead(200, { 'Content-Type': contentType });
response.end(content, 'utf-8');
}
});
}).listen(8080);
console.log('Server running at http://127.0.0.1:8080/');
shell.exec('xinit chromium-browser --start-maximized -kiosk http://localhost:8080/');
(EE)
致命的服务器错误:
(EE) 服务器已经处于活动状态以显示 0
如果此服务器不再运行,请删除 /tmp/.X0-lock 并重新启动。
(EE)
(EE)
请在http://wiki.x.org上咨询 The X.Org Foundation 支持以获取帮助。
(EE)
No protocol specified
xinit: 放弃
xinit: 无法连接到 X server: 资源暂时不可用
xinit: server error
我多次删除了这个文件。我使用 raspberry stretch lite 发行版。
$ ps辅助| grep X
pi 949 0.0 0.0 3536 624 tty1 S+ 16:38 0:00 xinit /etc/X11/xinit/xinitrc -- /etc/X11/xinit/xserverrc :0 vt1 -keeptty -auth /tmp/serverauth.wsn7HgMgWE
root 949 0.0 3.9 182112 37440 tty1 S1 16:38 0:00 /usr/lib/xorg/Xorg -nolisten tcp :0 vt1 -keeptty -auth /tmp/serverauth.wsn7HgMgWE
pi 1188 0.0 0.0 4772 572 tty5 R+ 17:18 0:00 grep --color=auto X
解决方案
推荐阅读
- amazon-s3 - 如何将 Slack App 安装商店从本地机器移动到 Amazon S3
- javascript - index.cjs.js:409 未捕获(承诺中) FirebaseError:缺少权限或权限不足
- python - 绘制带有条形的直方图,每个条具有恒定的通过(例如,每 0.5 米)
- list - 如何从 Racket 中的字符串列表中打印随机元素?
- vue.js - 在 Vue 构建期间保留上传文件夹
- python - 如何使用python从xml格式的响应中检索相同标签的所有值?
- java - 如何在输出末尾添加句点?动态搜索广告
- python - 导入 Keras 的 Jupyter 内核死机
- java - 将 GenericRecord 转换为 SpecificRecord 会引发错误
- amazon-cloudformation - AwsCustomResource:如何知道什么时候没有更多的 ResponseFields?