Как сделать чтобы определённая программа (Всегда запускалась с определённой переменной окружения)
Модератор: Bizdelnick
-
MaGIc laNTern
- Сообщения: 537
- Статус: 人です
- ОС: Gentoo
Как сделать чтобы определённая программа
Такой вопрос.
Я могу как-нибудь сделать так чтобы конкретная программа у меня всегда запускалась с LANG=ru_RU.CP1251?
Alias'ы bash'а не подойдут: мне неудобно каждый раз запускать bash для запуска данной программы (кстати, программа здесь beep-media-player).
Казалось-бы дело упрощается тем что запускаю Я программу эту всегда через sven, но он-то запускает команды не через bash, поэтому через него переменную окружения задать не получится.
Я могу как-нибудь сделать так чтобы конкретная программа у меня всегда запускалась с LANG=ru_RU.CP1251?
Alias'ы bash'а не подойдут: мне неудобно каждый раз запускать bash для запуска данной программы (кстати, программа здесь beep-media-player).
Казалось-бы дело упрощается тем что запускаю Я программу эту всегда через sven, но он-то запускает команды не через bash, поэтому через него переменную окружения задать не получится.
-
Данил
- Сообщения: 944
- ОС: windows xp, cruncheee, ddwrt
Re: Как сделать чтобы определённая программа
Пиши скрипт
У меня такой
#!/bin/sh
export LANG=ru_RU.KOI8-R
xmms
У меня такой
#!/bin/sh
export LANG=ru_RU.KOI8-R
xmms
ASUS eee pc 701 [windowsXP sp3] [Ubuntu linux]
wi-fi router d-link dir-400 [ddWRT v24 SP1 linux]
[sony psp 2008 slim wi-fi netBSD]
nas d-link dsm-600
Противник HAL NETWORKMANAGER и других подобных паделок!!!
wi-fi router d-link dir-400 [ddWRT v24 SP1 linux]
[sony psp 2008 slim wi-fi netBSD]
nas d-link dsm-600
Противник HAL NETWORKMANAGER и других подобных паделок!!!
-
t.t
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: Как сделать чтобы определённая программа
Тогда уж лучше exec xmms
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
MaGIc laNTern
- Сообщения: 537
- Статус: 人です
- ОС: Gentoo
Re: Как сделать чтобы определённая программа
Да... Скрипт в принципе подходящее решение, что-то Я об этом не подумал.
Но у меня ведь как сделано то. В sven на определённую клавишу забиндена команда beep-media-player --play-pause
И Я соответственно одной и той же кнопкой делаю три вещи: запускаю BMP и делаю чтобы в нём сразу начинала играть музыка, ставлю музыку на паузу, инициализирую продолжение воспроизведения музыки. А так у меня будет всегда задаваться переменная окружения... Что-то не то получается. Мне кажется что оно так может начать глючить.
Но у меня ведь как сделано то. В sven на определённую клавишу забиндена команда beep-media-player --play-pause
И Я соответственно одной и той же кнопкой делаю три вещи: запускаю BMP и делаю чтобы в нём сразу начинала играть музыка, ставлю музыку на паузу, инициализирую продолжение воспроизведения музыки. А так у меня будет всегда задаваться переменная окружения... Что-то не то получается. Мне кажется что оно так может начать глючить.
-
Данил
- Сообщения: 944
- ОС: windows xp, cruncheee, ddwrt
Re: Как сделать чтобы определённая программа
2tt
Чем лучше?
MaGIc laNTern
Да, это будет посложней...
Я так понял, что переменную окружения надо ставить один раз, а потом уже пускать bmp.
Может быть скрипт создает файл-метку, и впоследствии, при нажатии кнопки, проверяет её и сразу-же исполняет bmp---
Скрипт-гуру где вы!!!
Чем лучше?
MaGIc laNTern
Да, это будет посложней...
Я так понял, что переменную окружения надо ставить один раз, а потом уже пускать bmp.
Может быть скрипт создает файл-метку, и впоследствии, при нажатии кнопки, проверяет её и сразу-же исполняет bmp---
Скрипт-гуру где вы!!!
ASUS eee pc 701 [windowsXP sp3] [Ubuntu linux]
wi-fi router d-link dir-400 [ddWRT v24 SP1 linux]
[sony psp 2008 slim wi-fi netBSD]
nas d-link dsm-600
Противник HAL NETWORKMANAGER и других подобных паделок!!!
wi-fi router d-link dir-400 [ddWRT v24 SP1 linux]
[sony psp 2008 slim wi-fi netBSD]
nas d-link dsm-600
Противник HAL NETWORKMANAGER и других подобных паделок!!!
-
madskull
- Сообщения: 1019
- Статус: Экс-металлюга
Re: Как сделать чтобы определённая программа
"А хрен ли думать, все давно придумано!" Г.Хазанов
Вот так у меня одной кнопкой управляется xmms
Код: Выделить всё
#!/bin/bash
if [ -z "$(pidof xmms)" ]; then
exec xmms
else
xmms --pause
fiНичего сложного.
ArchLinux / IceWM
-
polachok
- Бывший модератор
- Сообщения: 2199
- Статус: главный форумный маргинал
- ОС: gnu/linux
Re: Как сделать чтобы определённая программа
Мне кажется что оно так может начать глючить.
а мне нет. впрочем уже ответили
И немедленно выпил.
-
Данил
- Сообщения: 944
- ОС: windows xp, cruncheee, ddwrt
Re: Как сделать чтобы определённая программа
2madskull
только pidof по умолчанию только из-под рута...
2 polachok
??????
Что не начнет?
только pidof по умолчанию только из-под рута...
2 polachok
??????
Что не начнет?
ASUS eee pc 701 [windowsXP sp3] [Ubuntu linux]
wi-fi router d-link dir-400 [ddWRT v24 SP1 linux]
[sony psp 2008 slim wi-fi netBSD]
nas d-link dsm-600
Противник HAL NETWORKMANAGER и других подобных паделок!!!
wi-fi router d-link dir-400 [ddWRT v24 SP1 linux]
[sony psp 2008 slim wi-fi netBSD]
nas d-link dsm-600
Противник HAL NETWORKMANAGER и других подобных паделок!!!
-
madskull
- Сообщения: 1019
- Статус: Экс-металлюга
Re: Как сделать чтобы определённая программа
Конечно не начнет. Теоритически, наоборот, может начать глючить, если запускать с разным окружением (то есть первый раз выставить, а потом, при управлении, нет). А практически -- думаю, ничего страшного.
Это что-то новенькое... В Арче, по крайней мере, pidof лежит в /bin.
ArchLinux / IceWM
-
Данил
- Сообщения: 944
- ОС: windows xp, cruncheee, ddwrt
Re: Как сделать чтобы определённая программа
а в федоре4 в /sbin
ASUS eee pc 701 [windowsXP sp3] [Ubuntu linux]
wi-fi router d-link dir-400 [ddWRT v24 SP1 linux]
[sony psp 2008 slim wi-fi netBSD]
nas d-link dsm-600
Противник HAL NETWORKMANAGER и других подобных паделок!!!
wi-fi router d-link dir-400 [ddWRT v24 SP1 linux]
[sony psp 2008 slim wi-fi netBSD]
nas d-link dsm-600
Противник HAL NETWORKMANAGER и других подобных паделок!!!
-
madskull
- Сообщения: 1019
- Статус: Экс-металлюга
Re: Как сделать чтобы определённая программа
Ну и указывай полный путь. Или, там даже нет прав на исполнение нерутом?
ArchLinux / IceWM
-
Данил
- Сообщения: 944
- ОС: windows xp, cruncheee, ddwrt
Re: Как сделать чтобы определённая программа
Хммм...
/sbin/pidof xmms работает! Спасибо!
Но только странно, почему /sbin не прописана в юзерских конфигах.
/sbin/pidof xmms работает! Спасибо!
Но только странно, почему /sbin не прописана в юзерских конфигах.
ASUS eee pc 701 [windowsXP sp3] [Ubuntu linux]
wi-fi router d-link dir-400 [ddWRT v24 SP1 linux]
[sony psp 2008 slim wi-fi netBSD]
nas d-link dsm-600
Противник HAL NETWORKMANAGER и других подобных паделок!!!
wi-fi router d-link dir-400 [ddWRT v24 SP1 linux]
[sony psp 2008 slim wi-fi netBSD]
nas d-link dsm-600
Противник HAL NETWORKMANAGER и других подобных паделок!!!
-
t.t
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: Как сделать чтобы определённая программа
Тем что процесс sh не останется висеть.(Данил @ Mar 11 2006, в 23:18) писал(а):2tt
Чем лучше?
Да, это действительно что-то новенькое. Никогда раньше такого не слышал. Чем эта программа могла показаться разработчикам федоры опасной для запуска от простого пользователся, ума не приложу.(Данил @ Mar 11 2006, в 23:57) писал(а):а в федоре4 в /sbin
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
MaGIc laNTern
- Сообщения: 537
- Статус: 人です
- ОС: Gentoo
Re: Как сделать чтобы определённая программа
madskull:
Спасибо! Мне пришёл в голову тот-же алгоритм (за исключением того что Я думал делать ps -A | grep ...), только Я не знал как реализовать его на bash, а php (с которым Я обычно дружу великолепно) мне показался неподходящим (хотя в общем-то 5.1 версия настолько производительна, что наверняка уже на равных может соперничать с shell).
UPD:
Кстати, у меня ASPLinux и тут тоже у юзера в PATH не подставляются /sbin, /usr/sbin, /usr/local/sbin, но если писать полный путь - никаких проблем.
Из под юзера Я обычно и не пользуюсь тем что лежит в этих каталогах (хотя pidof у меня как и многое другое лежит в /sbin), но когда Я делаю su root, а PATH не меняется - немного раздражает. Раньше то Я просто работал всё время под root в локали CP1251 и вроде как никаких проблем не испытывал... Но почему-то всё таки решил изменить политику своего компьютера...
Спасибо! Мне пришёл в голову тот-же алгоритм (за исключением того что Я думал делать ps -A | grep ...), только Я не знал как реализовать его на bash, а php (с которым Я обычно дружу великолепно) мне показался неподходящим (хотя в общем-то 5.1 версия настолько производительна, что наверняка уже на равных может соперничать с shell).
UPD:
Кстати, у меня ASPLinux и тут тоже у юзера в PATH не подставляются /sbin, /usr/sbin, /usr/local/sbin, но если писать полный путь - никаких проблем.
Из под юзера Я обычно и не пользуюсь тем что лежит в этих каталогах (хотя pidof у меня как и многое другое лежит в /sbin), но когда Я делаю su root, а PATH не меняется - немного раздражает. Раньше то Я просто работал всё время под root в локали CP1251 и вроде как никаких проблем не испытывал... Но почему-то всё таки решил изменить политику своего компьютера...
-
Данил
- Сообщения: 944
- ОС: windows xp, cruncheee, ddwrt
Re: Как сделать чтобы определённая программа
2t.t
И правда, процессов xmms стало на 1 меньше(теперь2, а не 3)
Спасибо, теперь буду знать.
И правда, процессов xmms стало на 1 меньше(теперь2, а не 3)
Спасибо, теперь буду знать.
ASUS eee pc 701 [windowsXP sp3] [Ubuntu linux]
wi-fi router d-link dir-400 [ddWRT v24 SP1 linux]
[sony psp 2008 slim wi-fi netBSD]
nas d-link dsm-600
Противник HAL NETWORKMANAGER и других подобных паделок!!!
wi-fi router d-link dir-400 [ddWRT v24 SP1 linux]
[sony psp 2008 slim wi-fi netBSD]
nas d-link dsm-600
Противник HAL NETWORKMANAGER и других подобных паделок!!!
-
elide
- Бывший модератор
- Сообщения: 2421
- Статус: Übermensch
- ОС: лялих
Re: Как сделать чтобы определённая программа
а ты делай просто su -но когда Я делаю su root, а PATH не меняется - немного раздражает.
слава роботам!
-
MaGIc laNTern
- Сообщения: 537
- Статус: 人です
- ОС: Gentoo
Re: Как сделать чтобы определённая программа
Надо-же! Действительно, так PATH меняется.
А почему так?
А почему так?
-
elide
- Бывший модератор
- Сообщения: 2421
- Статус: Übermensch
- ОС: лялих
Re: Как сделать чтобы определённая программа
ну я даже не знаю.... может все-таки стоит попробовать почитать man su ???А почему так?
слава роботам!
-
MaGIc laNTern
- Сообщения: 537
- Статус: 人です
- ОС: Gentoo
Re: Как сделать чтобы определённая программа
Да вот Я хотел, просто не знал как Я буду искать по символу '-'. Думал что это не так просто и man большой.
Сейчас прочитал... Хотя не вполне понял. То есть всё что делает эта опция (а также её alias'ы '-l' и '--login'), так это исполняет bashrc того юзера, в которого логинишься, а когда выходишь - снова исполняет твой?
Сейчас прочитал... Хотя не вполне понял. То есть всё что делает эта опция (а также её alias'ы '-l' и '--login'), так это исполняет bashrc того юзера, в которого логинишься, а когда выходишь - снова исполняет твой?
-
madskull
- Сообщения: 1019
- Статус: Экс-металлюга
Re: Как сделать чтобы определённая программа
MaGIc laNTern писал(а): ↑12.03.2006 16:33Да вот Я хотел, просто не знал как Я буду искать по символу '-'. Думал что это не так просто и man большой.
Сейчас прочитал... Хотя не вполне понял. То есть всё что делает эта опция (а также её alias'ы '-l' и '--login'), так это исполняет bashrc того юзера, в которого логинишься, а когда выходишь - снова исполняет твой?
man bash на предмет опций -l/--login
Просто su, насколько я понимаю, запускает bash либо просто (окружение наследуется), либо с опцией --login и отрабатывется "новое" окружение.
А при выходе ничего не снова не исполняется, просто восстанавливается старое. Как и при запуске любой другой программы.
ArchLinux / IceWM