主机控制守护程序。守护程序会监视其他主机使用Ping请求(ICMP),并用WOL(Wake on LAN)数据包控制其中一些。
主要目的是通过某些Central Linux主机来控制一个/多个Linux主机(例如SMB服务器)。这是通过自动关闭不需要的服务器来节省电源。
hostcontrold正在运行的中心主机不仅监视了TO Control Host(服务器),还可以监视该服务器的客户端。如果PING检测到中央控制器的一个配置的客户端主机,则使用魔术WOL数据包启动服务器主机。这只能在某些客户端启动和运行时运行服务器。如果所有客户端关闭,则在指定的超时期之后,服务器也将关闭。
所有功能:
克隆中央控制Linux主机上的存储库。
安装构建依赖关系:
sudo apt install make cmake g++ pkg-config libtool
构建和安装:
cd hostcontrold && mkdir build && cd build
cmake ..
sudo make -j4 install
配置文件位于/etc/hostcontrold.conf上。如果您在没有创建的配置文件的情况下启动守护程序,将生成默认文件。您可以在每个服务器上添加任意的更多服务器块和任意客户端。
您可以通过使用ping测试主机对ICMP请求的响应:
ping 192.168.0.6
应用程序用户可以使用该命令的示例来准备服务器主机,在该服务器中,用户clang应该使用SSH登录:
ssh-keygen
ssh-copy-id [email protected]
您可以测试如果以下命令可以在没有任何用户输入的情况下使用以下命令,则可以测试一切是否正常:
让Systemd知道新的守护程序,在系统启动时启用AutoStart并启动守护程序。
sudo systemctl daemon-reload
sudo systemctl enable hostcontrold
sudo systemctl start hostcontrold
更改配置后,请使用sudo systemctl restart hostcontrold 。
查看守护程序的日志:
journalctl -e -u hostcontrold
安装和启动后,守护程序将不断运行并监视所有配置的主机。您可以在配置的控制目录中看到on / off文件可视化的服务器主机的状态。通过在目录中创建简单的文件,您可以强制某些特定的行为:
| 文件名 | 内容 | 特征 |
|---|---|---|
force_on | 空的 | 将保持服务器的电源 |
force_off | 空的 | 将保持服务器电源 |
有关如何构建的信息,请参见Quick start guide部分中的Installation步骤。
该代码本身被组织为具有C ++ 14代码的纯CMAKE项目。在代码上使用的IDE最喜欢的IDE是CLION。
整个开发步骤也可以在准备好的码头容器中完成。这些主要用于在不同的分布/工具链上使用GitHub Action Workflow构建和测试代码,但也可用于本地开发。默认情况下使用带有GCC的Ubuntu。
# Build the docker image.
./development/1_create.sh
# Create docker container and run it with the correct mounted volumes.
./development/2_run.sh
# Connect into the container.
./development/3_connect.sh
# Now you are logged-in the docker container.
cd /tmp/hostcontrold/
# Now you are in the source directory where you can compile and run tests e.g.
mkdir build
cd build
cmake ..
make -j4
# Leave the container with the following command when you are finished developing/testing.
exit
# Remove all signs of the docker container.
./development/5_remove.sh
对于单元测试,使用了googletest框架。这是自动安装在Docker容器中的。直接安装主机可以使用提供的脚本。
sudo development/install_gtest.sh
单元测试二进制文件由CMAKE TARGET hostcontrold_test创建。要运行测试,直接执行二进制hostcontrold/unittest/hostcontrold_test或构建使用ctest框架的CMAKE目标test 。
sudo 。允许配置此。麻省理工学院
没有版本号,发布,标签或分支。应该将主被视为当前稳定版本。所有其他现有分支都是特征/开发分支,被认为是不稳定的。
Christian Lang [email protected]