Я думаю, поскольку вы меняете местами только одиночные символы, tr
может быть хорошим инструментом для работы.
Попробуйте сделать так:
tr '0?' '?0' < log.txt
Если вы заставите это работать, окна вашего приложения будут всплывать на экране входа в систему, доступном для всех, кто проходит мимо -вы действительно этого хотите?
И когда кто-то входит в систему, я думаю, что любые окна, запущенные на экране входа в систему, будут принудительно закрыты, поэтому вашему приложению придется обнаруживать вход пользователя и каким-то образом повторно -устанавливать соединение с сеансом этого пользователя. Когда кто-то выходит из системы с помощью графического интерфейса, будет запущен сброс X-сервера, который обязательно заставит все X-приложения отключиться от сервера. Это потребует сложной логики соединения re -или принятия того, что локальный графический интерфейс не должен использоваться во время работы службы.
Если ваше фактическое требование состоит в том, чтобы просто запускать службу Java независимо от входа/выхода пользователей из консоли с графическим интерфейсом, лучшим решением будет настроить отдельный X-сервер для вашего приложения.
Если вам нужно время от времени взаимодействовать с приложением, вероятно, подойдет отдельный -VNC X-сервер. У него будет собственный виртуальный дисплей, к которому вы можете подключиться с помощью клиента VNC, если это необходимо.
Если вообще нет необходимости взаимодействовать с приложением с помощью локального графического интерфейса, то вы можете запустить приложение с помощью виртуального фреймбуфера X-сервера , который вообще не имеет реального отображения, но в остальном ведет себя как настоящий X-сервер. Вы можете обнаружить, что он упакован вашим дистрибутивом Linux как xvfb
или аналогичный.