dhampire
я понимаю что так так легче для вас, “ничего чинить не надо”. но hillman единственное приложение с таким поведением,
что явно намекает - дело не в wm.
Впрочем можно объявить багу фичей =)

Хорошо, попытаемся разобраться по порядку.

1). Средства, гарантирующие запуск программы в единственном экземпляре, могут быть внутри программы или снаружи её. Мне нравится второй вариант. И я не одинок в своём мнении. Например, в инит-скриптах арча есть проверка “программа уже запущена?”… IMHO это вообще должно бы быть функцией ОС…

2). Пропадание трея для программы, показывающей иконку в трее, вообще говоря, ситуация нештатная. И результат тут может быть разным. И зависит он не только от трея и программы, но и от тулкита (в данном случае gtk2-perl и perl-gtk2-trayicon). Вот тестовая программка (hellotray.pl)
#!/usr/bin/perl
use warnings;
use strict;
use Gtk2::TrayIcon;
use Gtk2 -init;
my $window = Gtk2::Window->new('toplevel');
my $button = Gtk2::Button->new(' Quit ');
$button->set_border_width(10);
$window->signal_connect(delete_event => sub { Gtk2->main_quit });
$button->signal_connect(clicked => sub { Gtk2->main_quit });
$window->add($button);
$window->show_all;
my $image = Gtk2::Image->new_from_stock('gtk-help','menu');
my $tray = Gtk2::TrayIcon->new('hello');
my $eventbox = Gtk2::EventBox->new();
$eventbox->add($image);
$tray->add($eventbox);
$tray->show_all();
Gtk2->main;
exit;
Так вот при остановке, например, stalonetray эта программка вообще падает. Причём не сама, падает тулкит во время выполнения Gtk2->main. И как это лечить?

А то, что “hillman единственное приложение с таким поведением” – так у вас это наверняка единственное приложение на gtk2-perl…

Увы, мы живём в несовершенном мире. Рекомендация “перед остановкой трея останови hillman” решает проблему? Решает. Вы же не удивляетесь плакату “Не влезай - убъёт” на щитке с электрооборудованием? Хотя, казалось бы, можно было потребовать всё заизолировать…

dhampire
ЗЫ не скриптом перезапускается он, а функция у него такая есть
Ну да, не скрипт для запуска WM, а скрипт, исполняемый WM'ом при запуске. Это я и имел в виду.
dhampire
при перезапуске WM {Enlignhtnment DR17} …
Предложения по запуску: вписать запуск hillman в старт-скрипт WM'а, строчкой выше написать `killall hillman`. Так проще.
h4tr3d
нажатие кнопки Применить … ок должна быть всегда активна, и при нажатии выполнять запись параметров + закрытие диалога.
Возможно… Интересно, что в GnomeHIG сказано об этом?

h4tr3d
а, и врапперы ты решил не использовать… гм
Дал возмжность пользователю использовать что ему угодно…

UPD:
Умолчание “hillman_mount /dev/%d %m %t %o” таки там есть. Но оно проявляется только при первом запуске программы, c пустым или отсутствующим ~/.hillman/hillman.conf.
h4tr3d
ntfs не опечатка? почему не ntfs-3g как тип файловой системы
А разницы никакой. `mount -t ntfs …` (по крайней мере в моей конфигурации) приводит к запуску /bin/ntfs-3g. А монтируется как fuseblk.
h4tr3d
дядька (или лучше дедка обращаться? :)), обнови AUR =-)
:))
Ну нельзя же всё так сразу… Некогда было! Всё, обновил уже.
kraftello
Предыдущая версия внешний wd mybook с ntfs не монтировала.
К большому сожалению, баг с монтированием ntfs не исправлен. Непонятно, как лечить проблему с fuse-mount: viewtopic.php?f=2&t=4127
Вышла версия 0.3.0.
h4tr3d
Кратко на пальцах про SUID или SetUID и малость про sTicky bit:
Спасибо, буду грызть! :)

h4tr3d
ЗЗЫ по времени, с учетом летнего - GMT+11
Угу. А у меня летнее GMT+5, итого у нас с тобой 6 часов разницы. Широка страна моя родная…
h4tr3d
я бы все же настраиваемый скрипт для монтирования не делал. подобно сделано в smb4k, правда там это бинарники.
Дык опционально же? Короче, поздняк, уже делаю (прямо сейчас), скоро выложу – посмотришь… А там видно будет.

h4tr3d
Правда там второй вариант был: поставить SUID на mount.cifs/umount.cifs, хотя в последней версии samba эту возможность зарезали.
Вот я всё-таки по натуре не сисадмин… :( Пытался в своё время вникнуть в этот SUID – никак. :(

h4tr3d
Правда smb4k ещё сама строки в судо добавляет…
Угу, мне тоже уже предлагали, чтоб Hillman в fstab писал… Нет уж, такой самодеятельности от софта я не потерплю. :P


PS: h4tr3d, давно хочу спросить, да всё забываю: какое у вас там во Владивостоке сейчас время – UTC+10 ?
h4tr3d
OldMan
в настройках делаю опцию " Использовать команды“ и два поля ввода ”…для монтирования“ и ”…для размонтирования" (опять же с макросами). Кому нужно, сможет себе написать любой скрипт.
ну смотри, так каждому новому пользователю ещё пропиши новый скрипт, мне тогда будет проще поддерживать параллельно патч + pkg-build по аналогии как развиваются проекты texmaker и texmakerx, будет hillmanx :-D
OK, делаю. В поля ввода подставляю умолчания “hillman_mount /dev/%d %m %t %o” и “hillman_umount /dev/%d %m”.

h4tr3d
А может запомнить делать по нажатию кнопки Ок? вообще как-то так и принято в интерфейсах… или я где-то что-то неопнимаю? :)
Чекбокс " Запомнить“ имеет смысл ”этот диск знаю в лицо и помню про него". Соотвественно снятие галки (и да, затем нажатие кнопки ) означает “вычёркиваю диск из списка своих и знать про него не хочу”.
Тестовый скрипт:

#!/usr/bin/perl
use warnings;
use strict;
#$SIG{CHLD} = 'IGNORE';
my $cmd = '/usr/bin/sudo -S /bin/mount -t ntfs /dev/sda1 /media/1';
print STDOUT `$cmd 2>&1`,"\n";
exit;

Запускаю, монтирует. Размонтирую, тоже всё в порядке. Теперь раскомментирую строку “$SIG{CHLD} = ‘IGNORE’;”, опять запускаю – ругается:
fuse: waitpid: Нет дочерних процессов
mount: according to mtab, /dev/sda1 is already mounted on /media/1
fuse: waitpid: Нет дочерних процессов
и хотя mount считает, что смонтировано:
.....
/dev/sda1 on /media/1 type fuseblk (rw,nosuid,nodev,allow_other,blksize=4096)
но umount тоже ругается:
$ sudo umount /media/1
umount: /media/1: не примонтирован

Всё это связано с fuse, с нормальным mount проблем нет.

Кто виноват и что делать?