Похоже, вы сможете перенаправить его на tty.
StandardInput = tty-force аналогичен tty, но исполняемый процесс принудительно и немедленно выполняет процесс управления терминалом, потенциально удаляя предыдущие процессы управления из терминала. tty-fail аналогичен tty, но если у терминала уже есть управляющий процесс, запуск исполняемого процесса завершается неудачно. Параметр сокета действителен только в сервисах, активированных сокетом, и только в том случае, если в файле конфигурации сокета (подробности см. В systemd.socket (5)) указан только один сокет. Если эта опция установлена, стандартный вход будет подключен к сокету, из которого была активирована служба, что в первую очередь полезно для совместимости с демонами, предназначенными для использования с традиционным демоном inetd (8). Этот параметр по умолчанию равен нулю.
Управляет, где дескриптор файла 0 (STDIN) выполненных процессов связан с. Принимает одно из следующих значений: null, tty, tty-force, tty-fail или socket. Если выбрано значение null, стандартный вход будет подключен к / dev / null, т.е. все попытки чтения процесса приведут к немедленному EOF. Если выбран tty, стандартный вход подключается к TTY (как сконфигурировано с помощью TTYPath =, см. Ниже), и выполненный процесс становится процессом управления терминалом. Если терминалом уже управляет другой процесс, исполняемый процесс ожидает, пока текущий процесс управления не освободит терминал.
О, и если это не сработает, мы сделаем что-то действительно сложное с сокетами Unix, которое, я уверен, вам понравится .
Винт эту ерунду, попробуйте что-то вроде этого, если вышеупомянутое не приемлемо:
Вы можете попробовать записать в каталог / proc pid. Скажите, что pid вашего демона 2000, попробуйте написать в / proc / 2000 / fd / 0
Вы можете добавить эту строку в ExecStop =, что освобождает вас от необходимости взаимодействовать вручную вообще.