Host Kontrol Daemon. Daemon yang memantau host lain dengan permintaan ping (ICMP) dan mengontrol beberapa dari mereka dengan paket WOL (Wake on LAN).
Tujuan utama adalah untuk mengontrol satu/beberapa host Linux (misalnya server SMB) oleh beberapa host Linux pusat. Ini untuk menghemat daya dengan mematikan server yang tidak diperlukan secara otomatis.
Host pusat tempat hostcontrold berjalan memantau tidak hanya untuk mengontrol host (server) tetapi juga klien server ini. Jika salah satu host klien yang dikonfigurasi terdeteksi oleh ping, pengontrol pusat memulai host server dengan menggunakan paket WOL ajaib. Ini memungkinkan untuk hanya menjalankan server jika beberapa klien siap dan berjalan. Jika semua klien mematikan server akan dimatikan juga setelah periode batas waktu yang ditentukan.
Semua fitur:
Kloning repositori pada host Linux kontrol pusat Anda.
Instal Bangun Ketergantungan dengan:
sudo apt install make cmake g++ pkg-config libtool
Bangun dan instal:
cd hostcontrold && mkdir build && cd build
cmake ..
sudo make -j4 install
File konfigurasi terletak di /etc/hostcontrold.conf . Jika Anda memulai daemon tanpa file konfigurasi yang dibuat, default akan dihasilkan. Anda dapat menambahkan lebih banyak blok server dan klien sewenang -wenang per server.
Anda dapat menguji apakah respons host terhadap permintaan ICMP dengan menggunakan ping:
ping 192.168.0.6
Contoh perintah yang dapat digunakan pengguna aplikasi untuk menyiapkan host server di mana clang pengguna harus digunakan untuk masuk melalui SSH:
ssh-keygen
ssh-copy-id [email protected]
Anda dapat menguji apakah semuanya baik -baik saja jika perintah berikut berfungsi tanpa input pengguna:
Biarkan Systemd tahu daemon baru, aktifkan Autostart di startup sistem dan mulai daemon.
sudo systemctl daemon-reload
sudo systemctl enable hostcontrold
sudo systemctl start hostcontrold
Gunakan sudo systemctl restart hostcontrold setelah mengubah konfigurasi.
Untuk melihat log penggunaan daemon:
journalctl -e -u hostcontrold
Setelah instalasi dan startup, daemon akan berjalan dan memantau semua host yang dikonfigurasi terus -menerus. Anda dapat melihat status host server divisualisasikan oleh file on / off di direktori kontrol yang dikonfigurasi. Dengan membuat file sederhana di direktori Anda dapat memaksa beberapa perilaku tertentu:
| Nama file | isi | fitur |
|---|---|---|
force_on | kosong | akan tetap menyala server |
force_off | kosong | akan menjaga agar server tetap tertundukkan |
Lihat langkah -langkah Installation di bagian Quick start guide untuk informasi cara membangun.
Kode itu sendiri diatur sebagai proyek CMake murni dengan kode C ++ 14. IDE yang disukai untuk bekerja pada kode adalah Clion.
Seluruh langkah pengembangan juga dapat dilakukan dalam wadah Docker yang disiapkan. Itu terutama digunakan untuk membangun dan menguji kode dengan alur kerja aksi GitHub pada distribusi/toolchain yang berbeda tetapi juga dapat digunakan untuk pengembangan lokal. Ubuntu dengan GCC digunakan secara default.
# 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
Untuk tes unit, kerangka kerja googletest digunakan. Ini secara otomatis dipasang di wadah Docker. Untuk menginstal langsung pada host, skrip yang disediakan dapat digunakan.
sudo development/install_gtest.sh
Biner uji unit dibuat oleh target cmake hostcontrold_test . Untuk menjalankan tes baik secara langsung menjalankan Binary hostcontrold/unittest/hostcontrold_test atau membangun test target CMake yang menggunakan kerangka kerja ctest .
sudo . Izinkan untuk mengonfigurasi ini.Mit
Tidak ada nomor versi, rilis, tag atau cabang. Master harus dianggap sebagai rilis stabil saat ini. Semua cabang lain yang ada adalah cabang fitur/pengembangan dan dianggap tidak stabil.
Christian Lang [email protected]