Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> паралельно 2 скрипта 
:(
    Опции темы
gcc
Дата 23.8.2008, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



есть скрипт от пользователя, нужно запустить еще один от root пользователя, чтобы он выполнял сразу то, что ему перададут!!

нужно тут использовать cron, но а можно чтобы один скрипт слушал, то что ему передадут и сразу выполнял это независимо от первого, как это сделать? через СУБД он должен "слушать"?

или как это сделать?



Это сообщение отредактировал(а) gcc - 23.8.2008, 13:02
PM WWW ICQ Skype GTalk Jabber   Вверх
FooBar
Дата 23.8.2008, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 25.2.2008

Репутация: 1
Всего: 3



gcc, вы имеете ввиду межпроцессовое взаимодействие?
если так то посмотрите вот тут: http://gelin.ru/text/trans/perl-ipc/
PM MAIL   Вверх
sir_nuf_nuf
Дата 23.8.2008, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 6.1.2008

Репутация: 14
Всего: 31



gcc, не понятно что вы хотите сделать...
Полагаю, можно создать второй скрипт, сохранить его в файле, так что бы root был владельцем,
и поставить на него suid бит.

Первый скрипт будет вызывать второй, второй будет запускаться с правами root и делать  что ему передали, например через аргументы @ARGV командной строки.

Посмотри как сделана комманда оформлена программа su
Код

ls -la /bin/su



вообще это довольно опасно запускать скрипты от рута, которые "делаю то что им передают"
обязательно делайте какую - то проверку прав, например как su - запрашивает пароль, иначе 
будут БОЛЬШИЕ проблемы  smile   


--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
gcc
Дата 24.8.2008, 08:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 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
PM WWW ICQ Skype GTalk Jabber   Вверх
FooBar
Дата 24.8.2008, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 25.2.2008

Репутация: 1
Всего: 3



gcc, по вашему первому посту я так понял что вы хотите передавать параметры скрипту который работает как демон, в таком случае можно было бы использовать для передачи параметров pipe, sysV ipc, unix sockets.
а чтобы стоп не убивало процесс можно например fork'нутся и в потомке обработать то что нужно
system('someprog > /dev/null &'); - запустит в фоне
PM MAIL   Вверх
gcc
Дата 1.9.2008, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



FooBar, спасибо сделал - работает!

я уже написал, исправляю ошибки...

извените, один вопрос не совсем понял, если будут передавать данные через клиент-сервер или через cron, и там же выполняться функция system(), и если где-то будет фатальная ошибка или сервер перезагрузиться, то как лучше сделать "трансакцию" при выполение system() ? smile просто потом нужно будет искать ошибку долго...


Это сообщение отредактировал(а) gcc - 2.9.2008, 03:59
PM WWW ICQ Skype GTalk Jabber   Вверх
gcc
Дата 2.9.2008, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



по-моиму я нашел, елси это оно ...   

 
Код

  package User;

        @ISA = qw(Object::Transaction);

        use Object::Transaction;

        my $top = "/some/path";

        sub new { 
                my ($package, $login) = @_;
                die unless getpwnam($login);
                return bless { UID => getpwnam($login) };
        }

        sub file { 
                my ($ref, $id) = @_;
                $id = $ref->id() unless $id;
                return "$top/users/$id/data.storable";
        }

        sub id {
                my ($this) = @_;
                return $this->{UID};
        }

        sub preload
        {
                my ($id) = @_;
                return if getpwuid($id);
                return getpwnam($id) if getpwnam($id);
                die;
        }

        sub postload
        {
                my ($this) = @_;
                my ($name,$passwd,$uid,$gid,$quota,$comment,$gcos,$dir,
                        $shell,$expire) = getpwuid($this->{UID});
                $this->{SHELL} = $shell;
        }

        sub presave
        {
                my ($this, $old) = @_;
                my $id = $this->{UID};
                mkdir("$top/users/$id", 0700);
                delete $this->{SHELL};
        }

        sub postsave
        {
                goto &postload;
        }

        sub postremove
        {
                delete from pw file...
        }

        my $joe = new User "joe";
        $joe->savelater();

        my $fred = new User "fred";
        $fred->savelater();

        $joe->commit();


http://search.cpan.org/~muir/Object-Transa...Transaction.pod

Это сообщение отредактировал(а) gcc - 3.9.2008, 02:40
PM WWW ICQ Skype GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.2636 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.