终端怎么控制
发布网友
发布时间:2022-04-22 02:03
我来回答
共2个回答
热心网友
时间:2023-08-27 18:41
如我们的例子: 我们在linux启动时启动一个服务, 可是中间有个程序(旧的systemtap)使用了sudo
但sudo需要控制终端(当然可以通过修改sudo的配置文件, 但这样很对用户不友好啊)
例子: (setsid 启动的程序会失去控制终端)
# setsid sudo ls
sudo: sorry, you must have a tty to run sudo
(如果你的系统没有输出这句话, 那就是你的系统的sudo配置文件允许sudo可以在这个,
请确保已经设置了Defaults requiretty)
没有控制中断的时候, 打开控制终端是这样的效果:
# setsid head -c 0 /dev/tty
head: cannot open `/dev/tty' for reading: No such device or address
为了解决这个问题, 所以应该使用能创建(伪)控制终端的程序来启动你的程序如: script, expect如:# setsid script -c "sudo ls" /dev/null或:# setsid expect -c 'spawn sudo ls; expect'#打开控制终端成功:
热心网友
时间:2023-08-27 18:42
什么终端