./upsdrvctl start запустился без указания пользователя. По умолчанию он видимо запускается из под пользователя nut. Права чтение\запись на устройство /dev/ttyUSB0 имеет также группа uucp, поэтому я просто включил в эту группу юзера nut (хотя бы временно).
В ups.conf пробовал указывать и user=root и user=nut - не помогает - все равно демон upsd не стартует.
Из под какого пользователя стартует этот демон не понятно, в скрипте искал но ничего нового не открыл. Привожу больший кусок где обрабатывается опция "start":
case "$1" in
start)
test -n "$POWERDOWNFLAG" && rm -f "$POWERDOWNFLAG"
if grep -q '^\[' $UPS_CONFIG ; then
# Read current user in the config:
USER=$(sed -n 's/^[[:space:]]*user[[:space:]]*=[[:space:]]*//p' < $UPS_CONFIG)
if test -n "$USER" ; then
UPS_OWNER="$USER:root"
UPSD_USER="$USER"
fi
if test -n "$UPS_OWNER" ; then
PORTS=$(sed -n 's/^[[:space:]][[:space:]]*port[[:space:]]*=[[:space:]]*//p' < $UPS_CONFIG)
## Change permissions of undetectable ports (for detectable ports it's done by udev).
for PORT in $PORTS ; do
if test -L "$PORT" ; then
PORT=$(readlink -f $PORT)
fi
case "$PORT" in
/dev/ttyS* )
chown $UPS_OWNER $PORT || { rc_failed ; rc_status -v ; rc_exit ; }
;;
esac
done
fi
echo -n "Starting NUT UPS drivers "
# Do not start upsdrvctl more times.
if ! test -f /var/run/upsdrvctl ; then
## Start daemon with startproc(8). If this fails
## the return value is set appropriately by startproc.
$UPSDRVCTL_BIN start >/dev/null 2>&1 || rc_failed
# Remember status and be verbose
rc_status -v || rc_exit
touch /var/run/upsdrvctl
else
rc_status -s ; rc_reset
fi
Вообщем upsdrvctl стартую, затем пробую запускать демона upsd но получаю сообщение:
Starting NUT UPS drivers failed
А так он не запускается:
# /etc/init.d/upsd -u nut start
Usage: /etc/init.d/upsd {start|stop|status|try-restart|restart|force-reload|reload|probe|powerdown|try-powerdown}
# /etc/init.d/upsd -u root start
Usage: /etc/init.d/upsd {start|stop|status|try-restart|restart|force-reload|reload|probe|powerdown|try-powerdown}
# /etc/init.d/upsd -u root
Usage: /etc/init.d/upsd {start|stop|status|try-restart|restart|force-reload|reload|probe|powerdown|try-powerdown}
Вот пока только запустить драйвер получается :(