Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
Как послать сообщение другому процессу? |

03.05.2009, 13:53
|
|
Новичок
Регистрация: 22.01.2009
Сообщений: 19
Провел на форуме: 8816
Репутация:
5
|
|
Как послать сообщение другому процессу?
Пишу демона, который спит до того момента, пока веб-скрипт не пошлет сигнал USR1. Потом он просыпается и делает свои грязные делишки. Если и демон и скрипт запущены от одного юзера, то все работает, но когда демон запустился от одного, а скрипт от www-data, то не работает. Я так понимаю это из за соображений безопасности, ведь у демона права рута.
Как мне быть?
|
|
|

03.05.2009, 14:08
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме: 2769640
Репутация:
1304
|
|
amorphius Создавать локальный сокет/изменять текстовый файл, который демон переодически будет читать/погуглить на тему IPC(inter-process communication)
|
|
|

04.05.2009, 16:56
|
|
Новичок
Регистрация: 22.01.2009
Сообщений: 19
Провел на форуме: 8816
Репутация:
5
|
|
создал сервер, ждет соединения на порт 2323, перловский скрипт создает сокет, конектится, вылетает ошибка
Код:
Software error:
Can't create socket: Connection refused
|
|
|

07.05.2009, 08:24
|
|
Новичок
Регистрация: 22.01.2009
Сообщений: 19
Провел на форуме: 8816
Репутация:
5
|
|
еще идеи будут? 
|
|
|

07.05.2009, 08:38
|
|
Постоянный
Регистрация: 08.04.2007
Сообщений: 853
Провел на форуме: 5812656
Репутация:
1540
|
|
гугли: pipe, семафоры.
|
|
|

07.05.2009, 11:03
|
|
Участник форума
Регистрация: 05.11.2008
Сообщений: 105
Провел на форуме: 292722
Репутация:
71
|
|
Сообщение от amorphius
создал сервер, ждет соединения на порт 2323, перловский скрипт создает сокет, конектится, вылетает ошибка
Код:
Software error:
Can't create socket: Connection refused
Код покажи, тогда может чем и поможем.
|
|
|

09.05.2009, 15:58
|
|
Новичок
Регистрация: 22.01.2009
Сообщений: 19
Провел на форуме: 8816
Репутация:
5
|
|
запросто...
сервер:
Код:
#!/usr/bin/perl
use strict;
use IO::Socket qw(:DEFAULT :crlf);
use Digest::SHA1 qw(sha1_base64);
use constant MY_PORT => 2323;
$/ = CRLF;
my $quit = 0;
my $port = shift || MY_PORT;
my $sock = IO::Socket::INET->new(Listen => 20, LocalPort => $port, Timeout => 60*60, Reuse => 1)
or die "Can't create listening socket: $!\n";
while (!$quit)
{
next unless my $session = $sock->accept;
while(<$session>)
{
my $hash = sha1_base64("some secret");
if ($hash eq $_)
{
warn "Catch something!";
}
}
close $session;
}
close $sock;
клиент
Код:
#!/usr/bin/perl
use strict;
use CGI ':standart';
use DBI;
use utf8;
use CGI::Cookie;
use Devel::Peek;
use Pack;
use HTML::Entities;
use CGI::Carp qw(fatalsToBrowser warningsToBrowser);
use Digest::SHA1 qw(sha1_base64);
use IO::Socket qw(:DEFAULT :crlf);
print "Content-type: text/html\n\n";
my $host = "127.0.0.1";
my $port = 2323;
my $sock = IO::Socket::INET->new("$host:$port")
or die "Can't create socket: $!\n";
print $sock sha1_base64("some secret");
close $sock;
|
|
|

11.05.2009, 00:48
|
|
Новичок
Регистрация: 22.01.2009
Сообщений: 19
Провел на форуме: 8816
Репутация:
5
|
|
идеи кончились?
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|