Демонизировать процесс в Linux bash ⇐ Linux
-
Anonymous
Демонизировать процесс в Linux bash
Каков наиболее удобный способ взаимодействия с библиотекой Rust, которой необходимо отслеживать какое-то внутреннее состояние в фоновом режиме?
Например, у меня есть следующая программа:
use tokio::io::AsyncBufReadExt; #[токио::main] асинхронный fn main() { пусть состояние mut = 0; let mut reader = tokio::io::BufReader::new(tokio::io::stdin()); петля { пусть mutuffer = Vec::new(); reader.read_until(b'\n', &mutuffer).await.unwrap(); let cmd = std::str::from_utf8(&buffer).unwrap(); совпадение cmd { "get-count\n" => { println!("{}", состояние); состояние += 1; } _ => { } } } } с которым я могу взаимодействовать с помощью Linux bash следующим образом:
грузовой пробег получить подсчет 0 получить подсчет 1 другая команда получить подсчет 2 Однако это создает процесс блокировки, и мне нужно использовать входные данные других команд bash при взаимодействии с библиотекой.
Моя цель — запустить это как демонический процесс таким образом, чтобы я мог взаимодействовать с ним следующим образом, используя bash:
>> ./start-service >> ./service-cli get-count 0 >> ./service-cli get-count 1 >> COUNT=$(./service-cli get-count) >> эхо $COUNT 2 Как лучше всего это сделать при использовании Linux? Есть ли примеры того, как сделать что-то подобное с помощью systemd?
Каков наиболее удобный способ взаимодействия с библиотекой Rust, которой необходимо отслеживать какое-то внутреннее состояние в фоновом режиме?
Например, у меня есть следующая программа:
use tokio::io::AsyncBufReadExt; #[токио::main] асинхронный fn main() { пусть состояние mut = 0; let mut reader = tokio::io::BufReader::new(tokio::io::stdin()); петля { пусть mutuffer = Vec::new(); reader.read_until(b'\n', &mutuffer).await.unwrap(); let cmd = std::str::from_utf8(&buffer).unwrap(); совпадение cmd { "get-count\n" => { println!("{}", состояние); состояние += 1; } _ => { } } } } с которым я могу взаимодействовать с помощью Linux bash следующим образом:
грузовой пробег получить подсчет 0 получить подсчет 1 другая команда получить подсчет 2 Однако это создает процесс блокировки, и мне нужно использовать входные данные других команд bash при взаимодействии с библиотекой.
Моя цель — запустить это как демонический процесс таким образом, чтобы я мог взаимодействовать с ним следующим образом, используя bash:
>> ./start-service >> ./service-cli get-count 0 >> ./service-cli get-count 1 >> COUNT=$(./service-cli get-count) >> эхо $COUNT 2 Как лучше всего это сделать при использовании Linux? Есть ли примеры того, как сделать что-то подобное с помощью systemd?
Мобильная версия