主機控制守護程序。守護程序會監視其他主機使用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]