Создайте файл, это - действительно сетевой порт

[1185050] К сожалению, я не верю, что есть единственный, универсальный способ достичь именно того, чего вы хотите. Каждый nix имеет свою систему init, и существуют различные системы init (SysV, Upstart, systemd и т.д.). Теперь, systemd имеет [1185515] некоторую [1185516] поддержку для запуска SysV-демонов, так что, возможно, вам удастся уйти от написания SysV-скрипта и заставить его работать для обеих систем, но я не знаю, как это будет работать с Upstart и другими системами. Я вижу два направления действий, которые могут помочь вам в достижении вашей цели:

wscript.exe runhidden.vbs yourbatfile.bat

Напишите сервис для каждой основной init-системы (обратите внимание, что многие дистрибутивы переходят на systemd, так что для начала может быть неплохо).

Сдайтесь и попробуйте запустить его при загрузке и попробуйте запустить немного позже.

.tabbrowser-tab { text-shadow: none !important; }

Например, хотя init-системы все еще довольно фрагментированы, вход в оболочку является практически универсальным. Вы можете добавить пару строк к каждой [1185521]$HOME/.shellrc[1185522] выполняющейся банке, если она еще не была запущена. Это было бы гораздо менее трудоемко и более универсально.

=SUM(INDIRECT(ADDRESS(1, 7) & ":" & 
              ADDRESS(MATCH(K13, $B$12:$B$8889, 1), 7))

Очевидным преимуществом [1185523]1 [1185524] является то, что он будет запускать банку до того, как пользователи увидят что-нибудь. Однако, это можно смягчить в [1185525]2 [1185526], установив автологин (хотя и не очень хорошая идея для безопасности).

Обратите внимание, что если это банка с графическим интерфейсом, то у вас будет достаточно много дополнительных головных болей (при запуске X, или Wayland, чтобы ваша банка могла работать, добавит несколько строк, по крайней мере, к любому решению, которое вы решите)[1185059].

1
06.09.2014, 01:22
1 ответ

Если ваша программа ведёт журнал, не воссоздавая файл (открыв его), то это можно сделать, создав файл в виде трубы:

mkfifo potato.log

Вы можете послать сообщение в эту трубу, как будто вы пишете в этот файл:

$ # This is the logging process:
$ echo "Warning!" > potato.log

И прочтите их:

$ # This is the listener process:
$ cat potato.log
Warning!

Если вы действительно хотите переслать это в TCP-сокет, вы можете сделать что-нибудь вроде:

$ socat PIPE:potato.log TCP:localhost:3000

Это может быть не очень надежно, но вы должны быть в состоянии сделать что-нибудь более надежное, написав программу вместо соката (обрабатывая деконнекции от удаленного TCP).

(все это необязательно, если Вы можете модифицировать программу, чтобы она имела встроенную поддержку протоколирования на основе сокетов).

5
27.01.2020, 23:17

Теги

Похожие вопросы