From 88abafc728daa76c09b32296b0a3674d76427c9d Mon Sep 17 00:00:00 2001 From: dragonn Date: Fri, 9 Jul 2021 18:40:38 +0200 Subject: [PATCH] add a protection to not allow running asusd in terminal --- daemon/src/daemon.rs | 13 +++++++++++++ data/asusd-alt.service | 1 + data/asusd.service | 1 + 3 files changed, 15 insertions(+) diff --git a/daemon/src/daemon.rs b/daemon/src/daemon.rs index 7944efeb..4bd8c604 100644 --- a/daemon/src/daemon.rs +++ b/daemon/src/daemon.rs @@ -20,6 +20,7 @@ use std::error::Error; use std::io::Write; use std::sync::Arc; use std::sync::Mutex; +use std::env; use daemon::ctrl_rog_bios::CtrlRogBios; use std::convert::Into; @@ -35,6 +36,18 @@ pub fn main() -> Result<(), Box> { .filter(None, LevelFilter::Info) .init(); + let is_service = match env::var_os("IS_SERVICE") { + Some(val) => val == "1", + None => false, + }; + + if !is_service { + println!("asusd schould be only run from the right systemd service"); + println!("do not run in your terminal, if you need an logs please use journalctl -b -u asusd"); + println!("asusd will now exit"); + return Ok(()); + } + info!(" daemon v{}", daemon::VERSION); info!(" rog-anime v{}", rog_anime::VERSION); info!(" rog-aura v{}", rog_aura::VERSION); diff --git a/data/asusd-alt.service b/data/asusd-alt.service index a1f260cf..1eebca17 100644 --- a/data/asusd-alt.service +++ b/data/asusd-alt.service @@ -3,6 +3,7 @@ Description=ASUS Notebook Control After=basic.target syslog.target [Service] +Environment=IS_SERVICE=1 ExecStart=/usr/bin/asusd Restart=on-failure Type=dbus diff --git a/data/asusd.service b/data/asusd.service index fc486dfa..161c3d23 100644 --- a/data/asusd.service +++ b/data/asusd.service @@ -5,6 +5,7 @@ StartLimitBurst=2 Before=display-manager.service [Service] +Environment=IS_SERVICE=1 ExecStart=/usr/bin/asusd Restart=on-failure Restart=always