Можна відправляти вхідний текст до запущеного процесу без запуску screen
утиліти чи будь-якої іншої вигадливої утиліти. А це можна зробити, надіславши цей вхідний текст у файл «стандартного введення» процесу /proc/PID#/fd/0
.
Однак вхідний текст потрібно надсилати спеціальним чином, щоб прочитати процес. Надсилання тексту введення за допомогою write
методу звичайного файлу не призведе до отримання тексту тексту. Це тому, що це буде додано лише до цього "файлу", але не запустить процес зчитування байтів.
Щоб запустити процес зчитування байтів, необхідно виконати IOCTL
операцію типу TIOCSTI
для кожного окремого байту, що надсилається. Це помістить байт у стандартну вхідну чергу процесу.
Це обговорюється тут на деяких прикладах у C, Perl та Python:
https://unix.stackexchange.com/questions/48103/construct-a-command-by-putting-a-string-into-a-tty/48221
-
Отже, щоб відповісти на оригінальне запитання, яке було задано майже 9 років тому, для роботи з cron потрібно було б запустити невеликий скрипт / програму утиліти, подібну до тих прикладів, які люди написали для цього іншого запитання, який би надіслав рядок "стоп \ n" на цей серверний процес у запитанні, надсилаючи кожен з 5 байтів через IOCTL
операцію типу TIOCSTI
.
Звичайно, це буде працювати лише в системах, що підтримують TIOCSTI
IOCTL
тип операції (наприклад, Linux), і тільки з root
облікового запису користувача, оскільки ці "файли" під /proc/
"належать" root
.