#stdio #system #unix-socket #sockets #server #forward #minecraft-server

app wrapped

一个简单的包装进程,用于通过 Unix 套接字转发 stdio

2 个版本

0.2.1 2019 年 12 月 4 日
0.2.0 2019 年 11 月 28 日

#46 in #forward

自定义许可

19KB
370 代码行

包装

一个简单的包装,用于将任何用户交互式程序暴露在 Unix 套接字上的 stdio

为什么我需要这个?

比如说,你正在尝试托管一个 Minecraft 服务器,你希望能够登录到服务器的控制台,同时你还想用 SystemD 单元文件管理你的服务器。通常这是不可能的,因为将 Minecraft 服务器作为系统服务运行意味着你无法访问其控制台。这个程序可以帮助你解决这个问题。

示例

比如说,我们想在单元文件中启动我们的 Minecraft 服务器

[Unit]
Description=Our minecraft server
After=network.target

[Service]
Type=simple
User=minecraft
WorkingDirectory=/home/minecraft
ExecStart=/usr/bin/java -Xmx1024M -Xms1024M -jar minecraft_server.1.14.4.jar nogui
TimeoutSec=15
Restart=always

[Install]
WantedBy=multi-user.target

我们可以这样使其可交互

[Unit]
Description=Our minecraft server
After=network.target

[Service]
Type=simple
User=minecraft
WorkingDirectory=/home/minecraft
ExecStart=/usr/local/bin/wrapped -s /tmp/uds -- /usr/bin/java -Xmx1024M -Xms1024M -jar minecraft_server.1.14.4.jar nogui
TimeoutSec=15
Restart=always

[Install]
WantedBy=multi-user.target

现在我们可以这样登录到我们的 Minecraft 服务器

$ sudo -u minecraft wrapped -s /tmp/uds

简单!

许可

本项目采用合作公共许可证授权。有关更多信息,请参阅提供的 LICENSE 文件。

依赖项

~9–18MB
~222K SLoC