Доброго времени суток, уважаемые.
Давно интересуюсь данным вопросом, и вот не выдержал, решил обратиться к Вам:
Есть скрипт (запускает игру), который требует поддержки русского в консоли.
Так вот, если его (этот скрипт) запустить руками, уже после запуска сервера, он отрабатывает корректно, есть возможность писать по русски как в игре, так и в консоли...
Если же (как должно быть) скрипт запускается через init.d - вместо русских букАФФ отображаются знаки "?" ...
Естественно это наталкивает на мысль запускать скрипт позже... но он и так стоит последним в очереди.
Конечно, сервер перезапускается редко (примерно 2-3 раза в год), но все же для общего развития хотелось бы узнать.
(console-cyrillic стоит, если будет такой вопрос)
Спасибо.
От какого юзера запускается в init.d?
от root, естественно... есть другие варианты? (в опциях запуска есть возможность прописать имя пользователя?)
в самом скрипте стоит запуск приложения от имени adin'a (sudo -u admin /path/to/game)
или я что-то не понял?
Вот... к примеру, у рута обычно по умолчанию всякие локали не настроены. Осталось выяснить, как настроен ваш admin. Либо нужно настроить его так же, передав все переменные окружения и т.д., либо попробуйте прописать запуск от того же пользователя, под которым работаете в DE.
"запуск от того же пользователя" - можно по подробнее? Буду очень благодарен. За Kubuntu с 2009 года, а некоторые мелочи узнаю до сих пор...
и разве sudo -u admin /path/to/game не запускает программу от имени admin ? Как следствие, все настройки вроде бы как должны были подтянуться... хотя на деле это не так...
то, что у root все по дефолту это и так понятно, от него и не прошу русский и прочих прелестей =)
add:
на той же страничке создание скрипта автозапуска
sudo update-rc.d my_script start 70 2 3 4 5 . stop 20 0 1 6
а вот при старте этот скрипт у нас будет исполнять init, т.е. root
Увы - не правильно.
Все настроено, но запуск из инит.д происходит до получения всех этих настроек, многих переменных окружения и т.д. и т.п.
это я понимаю. потому и спрашиваю, какие манипуляции нужно совершить, чтобы все подтянулось...
если есть альтернативы, буду рад выслушать
Да, пожалуй, я с кроном малость перепутал =)
О какой игре речь, если не секрет?
Minecraft.
Играет 5-10 человек, но проблема не столько в самой игре, сколько в проблеме как таковой.
...Хммм.. о кроне как-то не подумал. Отличная мысль! :-)
МногоНенужныхБукафф...
он и так стартует в скрине, для этого и запускается через скрипт...
Ну много так много... :) Заставлять их понимать не имею права :)
неверно выразился.
содежимое скрипта понятно, но не вижу смысла в таком нагромождении кода.
все прекрасно работает при одной строчке запуска в screen для нужного %usrname%
ко всему прочему, Ваш код не решает главной проблемы
Таки не совсем уж и неправильно. Столкнулся намедни с похожей задачкой, на версиях ОС до 15.04 лучше всего использовать upstart.
Для добавления скрипта запуска/остановки достаточно сделать два несложных действия:
1) создать линк /lib/init/upstart-job в каталог /etc/init.d/ с нужным именем
ln -s /lib/init/upstart-job /etc/init.d/выбранное_имя_службы
2) создать конфиг в /etc/init/выбранное_имя_службы.conf (с тем же именем, что и линк).
Конфигурационный файл позволяет удивительно лаконично и кратко задать все мыслимые параметры, начиная от того, в какой момент запустить (по поднятию интерфейсов или на определенном runlevel) и остановить, кучей возможностей по определению набора команд перед запуском программы и после и заканчивая самым интересным - указанием пользователя через setuid, указанием любых переменных окружения (например, env HOME=/home/node), запуском по событию и прочих прелестей. К слову, по той же ссылке доступно очень подробное описание возможностей.
Решил поделиться, наверняка кому-нибудь пригодится.
Даже жаль, что его выпилили, начиная с 15.04. Будем надеяться, что systemd еще более продвинутая штука, правда, пока не ковырял.
вполне логично.
/path/to/game - это путь к скрипту, или к бинарнику игры?
это скрипт
ок.
вкратце, можно перенаправить весь вывод этого скрипта в лог, и потом его посмотреть.
примерно в стиле script 2>&1 >>/var/log/log.file
в самом скрипте в первой строке
#!/bin/bash
добавить -x
#!/bin/bash -x
что включит отладку скрипта, и позволит записать весь вывод, и потом его спокойно анализировать
да, это знал... но тоже подзабыл.
и... "решил решить" проблему кроном.
Спасибо всем!
Не могу понять работу ветки? Последний ответ январь, моего вопроса нет, мне отвечали, не показывает.
Ветка (Русский текст autorun "решено") Читатели есть показывает вверху.
на других ветках ответы датируются -год назад ,два года назад? Чета не въеду. Кто объяснит?
PS последний свой комент обнаружил другого нет. Кажется стал понимать. Это уже редактирую. Можно не отвечать.
На форуме есть модераторы…
Древовидная структура, есть трекер сообщений, есть кнопка (к следующему новому) для перепрыгивания между непрочитанными в теме.
Спасибо.
Отправить комментарий