![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
есть скрипт от пользователя, нужно запустить еще один от root пользователя, чтобы он выполнял сразу то, что ему перададут!!
нужно тут использовать cron, но а можно чтобы один скрипт слушал, то что ему передадут и сразу выполнял это независимо от первого, как это сделать? через СУБД он должен "слушать"? или как это сделать? Это сообщение отредактировал(а) gcc - 23.8.2008, 13:02 |
|||
|
||||
FooBar |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 25.2.2008 Репутация: 1 Всего: 3 |
gcc, вы имеете ввиду межпроцессовое взаимодействие?
если так то посмотрите вот тут: http://gelin.ru/text/trans/perl-ipc/ |
|||
|
||||
sir_nuf_nuf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 6.1.2008 Репутация: 14 Всего: 31 |
gcc, не понятно что вы хотите сделать...
Полагаю, можно создать второй скрипт, сохранить его в файле, так что бы root был владельцем, и поставить на него suid бит. Первый скрипт будет вызывать второй, второй будет запускаться с правами root и делать что ему передали, например через аргументы @ARGV командной строки. Посмотри как сделана комманда оформлена программа su
вообще это довольно опасно запускать скрипты от рута, которые "делаю то что им передают" обязательно делайте какую - то проверку прав, например как su - запрашивает пароль, иначе будут БОЛЬШИЕ проблемы ![]() |
|||
|
||||
gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
FooBar, я поичтал, но не понял, например нужно передать переменную $saa, то как ее передать?
sir_nuf_nuf, да, можно sudo или su, но это получиться что я запущу его один скрипт просто, если я хочу сделать несколько функций, например, system(sudo cp 1 2); и если пользователь нажмет в браузере "stop" то эти функции может не выполниться, трансакицю тут можно сделать, навреное нет... делаю через cron, но а можно сразу сделать, то есть чтобы в другой скрипт можно было передать на ходу...? кстате, а system("exec sudo cp 1 1"); должен запуститься отдельно? Это сообщение отредактировал(а) gcc - 24.8.2008, 08:36 |
|||
|
||||
FooBar |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 25.2.2008 Репутация: 1 Всего: 3 |
gcc, по вашему первому посту я так понял что вы хотите передавать параметры скрипту который работает как демон, в таком случае можно было бы использовать для передачи параметров pipe, sysV ipc, unix sockets.
а чтобы стоп не убивало процесс можно например fork'нутся и в потомке обработать то что нужно system('someprog > /dev/null &'); - запустит в фоне |
|||
|
||||
gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
FooBar, спасибо сделал - работает!
я уже написал, исправляю ошибки... извените, один вопрос не совсем понял, если будут передавать данные через клиент-сервер или через cron, и там же выполняться функция system(), и если где-то будет фатальная ошибка или сервер перезагрузиться, то как лучше сделать "трансакцию" при выполение system() ? ![]() Это сообщение отредактировал(а) gcc - 2.9.2008, 03:59 |
|||
|
||||
gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
по-моиму я нашел, елси это оно ...
http://search.cpan.org/~muir/Object-Transa...Transaction.pod Это сообщение отредактировал(а) gcc - 3.9.2008, 02:40 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |