我的Xserver并非从nodejs脚本启动。我必须以root用户身份运行它,因为否则会发生以下错误:
/usr/lib/xorg/Xorg.wrap:仅允许控制台用户运行X服务器
所以我以以下方式启动脚本
sudo节点controller.js
首先,我启动控制器以运行区域设置网络服务器。然后,我想启动Xorg服务器并按照xinit命令运行我的浏览器。
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锁定并重新启动。
(EE)
(EE)
请咨询 http://wiki.x.org的X.Org Foundation支持以寻求帮助。
(EE)
未指定协议
xinit:放弃
xinit:无法 连接到X服务器:资源暂时不可用
xinit: 服务器错误
我多次删除了此文件。我使用覆盆子弹性建兴发行版。
$ ps auxw | 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
根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