Joe*_*oel 1 sockets linux bash shell startup
我已经在/etc/init.d/目录中添加了一个名为screen_tronserver.sh的脚本。我已经设置了权限,因此可以执行并调用
update-rc.d /etc/init.d/screen_tronserver.sh defaults 100
Run Code Online (Sandbox Code Playgroud)
将脚本添加到启动。该文件中的内容如下:
#!/bin/bash
echo "creating screen and starting tron server..."
screen -S tronserver -m /home/pi/programming/tronserver/a.out
Run Code Online (Sandbox Code Playgroud)
a.out文件是运行我创建的服务器的已编译程序。现在当我打电话
screen -ls
Run Code Online (Sandbox Code Playgroud)
它说没有找到套接字。但是,我已经尝试连接到服务器,并且连接成功,表明屏幕/插槽在某处运行,并在后台运行。
那么,为什么我看不到这个神秘的插座!?
正如安德鲁已经提到的那样,初始化脚本以root身份运行,并且屏幕属于不同的用户。键入时,screen -ls您将看到当前用户的屏幕,而不是系统上的所有屏幕。
所以是的,sudo screen -ls否则sudo screen -r将解决问题。
编辑(出于完整性和将来的参考):正如OP所指出的,还必须将-d标志添加到screen命令中以立即在init脚本中分离,否则屏幕将保持连接状态。