У меня вопрос по eiskaltdcpp-daemon: при запуске через скрипт в /etc/init.d/ в шаре пользователя хаба не отображаются файлы с русскими названиями (английские отображаются нормально).
Попробую описать подробно. Я хочу чтобы eiskaltdcpp-daemon крутился на пару с transmission-daemon на Ubuntu Server 10.10 и раздавал файлы.
На своём десктопе (Ubuntu 10.10 GNOME) с помощью eiskaltdcpp-qt подготовил файлы с настройками (через Инструменты->Настройки) и отхэшировал шару (для этого я на сервере открыл samba-ресурсы, где лежат файлы для раздачи, и примонтировал их на десктопе в каталоги с такими же полными путями, как на самом сервере). После чего всё это откопировал на сервер.
Запускаю "eiskaltdcpp-daemon -d". Всё ок. Пользователь "сервер" появляется на хабах, список файлов с него скачивается, файлы тоже скачиваются.
Теперь хочу добавить eiskaltdcpp-daemon в автозагрузку. В этом я пока не силён, поэтому просто беру скрипт от transmission-daemon, меняю всё под eiskaltdcpp-daemon и сохраняю как /etc/init.d/t-eiskaltdcpp-daemon.
Текст скрипта /etc/init.d/t-eiskaltdcpp-daemon:
#!/bin/sh -e
### BEGIN INIT INFO
# Provides: eiskaltdcpp-daemon
# Required-Start: $local_fs $remote_fs $network
# Required-Stop: $local_fs $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start or stop the eiskaltdcpp-daemon.
### END INIT INFO
NAME=eiskaltdcpp-daemon
DAEMON=/usr/bin/$NAME
USER=dcppuser
# FIXME: no pidfile support; forks, so --make-pidfile doesn't work either
#PIDFILE=/var/run/$NAME.pid
STOP_TIMEOUT=3
ENABLE_DAEMON=1
OPTIONS="-d"
export PATH="${PATH:+$PATH:}/sbin"
export XDG_CONFIG_HOME="/home/dcppuser/.config"
[ -x $DAEMON ] || exit 0
. /lib/lsb/init-functions
start_daemon () {
if [ $ENABLE_DAEMON != 1 ]; then
log_progress_msg "(disabled)"
else
start-stop-daemon --start \
--chuid $USER \
--exec $DAEMON -- $OPTIONS
fi
}
case "$1" in
start)
log_daemon_msg "Starting dc++ daemon" "$NAME"
start_daemon
log_end_msg 0
;;
stop)
log_daemon_msg "Stopping dc++ daemon" "$NAME"
start-stop-daemon --stop --quiet \
--exec $DAEMON --retry $STOP_TIMEOUT \
--oknodo
log_end_msg 0
;;
reload)
log_daemon_msg "Reloading dc++ daemon" "$NAME"
start-stop-daemon --stop --quiet \
--exec $DAEMON \
--oknodo --signal 1
log_end_msg 0
;;
restart|force-reload)
log_daemon_msg "Restarting dc++ daemon" "$NAME"
start-stop-daemon --stop --quiet \
--exec $DAEMON --retry $STOP_TIMEOUT \
--oknodo
start_daemon
log_end_msg 0
;;
*)
echo "Usage: /etc/init.d/$NAME {start|stop|reload|force-reload|restart}"
exit 2
;;
esac
exit 0
Выполняю
sudo update-rc.d t-eiskaltdcpp-daemon defaults
Перегружаюсь. Да, eiskaltdcpp-daemon запущен (и даже под нужным пользователем dcppuser и даже подхватил нужные настройки), на хабах пользователь "сервер" есть, но размер шары у него подозрительно маленький. Качаю с пользователя "сервер" список файлов - все английские файлы отображаются/качаются нормально, а русских половины нет, а у половины вместо русских букв - подчеркивания. Выполняю
/etc/init.d/t-eiskaltdcpp-daemon stop
/etc/init.d/t-eiskaltdcpp-daemon start
- всё опять нормально - шара у пользователя "сервер" нормального размера, русские буквы в списке файлов отображаются корректно, файлы с русскими буквами качаются нормально. Такое чувство что как-будто что-то ещё должно загрузиться для поддержки русского языка перед запуском демона или может я скрипт автозагрузки не так написал?
З.Ы. я понимаю что eiskaltdcpp-daemon ещё только в разработке и готов подождать когда он будет готов. Но просто вдруг это как-то можно поправить сейчас.