我正在开发一个node.js脚本,该脚本使用@abandonware/noble
扫描BLE通告。
平台:
- 操作系统:Linux Mint 21.1
- 内核:Linux 5.15.0 - 58-通用
- 架构:x86 - 64
- 节点. js版本19.0.4
当不使用sudo
运行时,该脚本会导致segfault,我发现没有方法可以防止这种情况。noble documentation提到,如果你想以普通用户的身份进行蓝牙扫描,你需要设置权限:
sudo setcap cap_net_raw+eip $(eval readlink -f `which node`)
但这并没有改变。
所以我想检查脚本是否以管理员权限运行。我尝试将process.getuid()
写成here,但无论是否以sudo
运行,总是返回1000
。
如何检查脚本是否使用sudo
运行?
1条答案
按热度按时间eqqqjvef1#
可以使用
os.userInfo()
.uid方法来检查当前用户的用户ID。请记住,必须使用sudo执行脚本,才能以root权限运行。