我正在尝试通过node.js子进程apis在linux系统上运行xdg-screensaver lock
但是我得到了令人困惑的结果。使用以下代码:
const { spawn } = require('child_process');
const ss = spawn('xdg-screensaver', ['lock']);
ss.stdout.on('data', (data) => {
console.log(`stdout: ${data}`);
});
ss.stderr.on('data', (data) => {
console.log(`stderr: ${data}`);
});
ss.on('close', (code) => {
console.log(`child process exited with code ${code}`);
});
xdg-screensaver lock
似乎确实在运行并确实锁定了屏幕,但是进程退出的错误代码为4
,根据xdg-screensaver手册表示操作失败。< / p>
我也尝试过使用exec:
const { exec } = require('child_process');
exec('xdg-screensaver lock', (error, stdout, stderr) => {
if (error) {
console.error(`exec error: ${error}`);
return;
}
console.log(`stderr: ${stderr}`);
console.log(`stdout: ${stdout}`);
});
这又一次运行命令(我的屏幕确实锁定),但我再次收到错误:exec error: Error: Command failed: xdg-screensaver lock
,即使它确实有效。
注意:如果您想测试它并且没有xdg-screensaver
,您可以尝试gnome-screensaver-command --lock
或cinnamon-screensaver-command --lock
或dm-tool lock