Hi,
I have transmission-daemon running on a remote computer, which I can access via ssh. Daemon is managed with an /etc/init.d script, and the problem is that when I'm logged into the remote computer over ssh, any attempt to start/stop/restart the daemon results in "Cannot open display:" error.
Code:
nexus:~ # transmission restart
Cannot open display:
I've read a number of topics on similar issues with X applications, but the question that is bugging me -- why would a CLI app request access to display?
There's also Webmin web-interface available, and everything works just fine if I use it to control the transmission-daemon. I should also probably mention that some time ago the script worked ok, but mysteriously broke, though no significant changes to the system had been made (i.e. only tweaks to separate applications' config files).
The script in /etc/init.d looks like this:
Code:
#!/bin/sh
#
### BEGIN INIT INFO
# Provides: transmission
# Required-Start:
# Should-Start:
# Required-Stop:
# Should-Stop:
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Short-Description: transmission bittorrent daemon
# Description:
### END INIT INFO
# Check for missing binaries (stale symlinks should not happen)
# Note: Special treatment of stop for LSB conformance
TRANSMISSION_BIN=/usr/bin/transmission-daemon
test -x $TRANSMISSION_BIN || { echo "$TRANSMISSION_BIN not installed";
if [ "$1" = "stop" ]; then exit 0;
else exit 5; fi; }
# Check for existence of needed config file and read it
TRANSMISSION_CONFIG="--config-dir /home/transmission/.config/transmission-daemon"
#test -r $TRANSMISSION_CONFIG || { echo "TRANSMISSION_CONFIG not existing";
# if [ "$1" = "stop" ]; then exit 0;
# else exit 6; fi; }
. /etc/rc.status
# Reset status of this service
rc_reset
case "$1" in
start)
echo -n "Starting transmission "
## Start daemon with startproc(8). If this fails
## the return value is set appropriately by startproc.
/sbin/startproc -u transmission $TRANSMISSION_BIN --config-dir /home/transmission/.config/transmission-daemon
# Remember status and be verbose
rc_status -v
;;
stop)
echo -n "Shutting down transmission "
## Stop daemon with killproc(8) and if this fails
## killproc sets the return value according to LSB.
/sbin/killproc -TERM $TRANSMISSION_BIN
# Remember status and be verbose
rc_status -v
;;
try-restart|condrestart)
## Do a restart only if the service was active before.
## Note: try-restart is now part of LSB (as of 1.9).
## RH has a similar command named condrestart.
if test "$1" = "condrestart"; then
echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}"
fi
$0 status
if test $? = 0; then
$0 restart
else
rc_reset # Not running is not a failure.
fi
# Remember status and be quiet
rc_status
;;
restart)
## Stop the service and regardless of whether it was
## running or not, start it again.
$0 stop
$0 start
# Remember status and be quiet
rc_status
;;
force-reload)
## Signal the daemon to reload its config. Most daemons
## do this on signal 1 (SIGHUP).
## If it does not support it, restart the service if it
## is running.
echo -n "Reload service FOO "
## if it supports it:
/sbin/killproc -HUP $TRANSMISSION_BIN
#touch /var/run/FOO.pid
rc_status -v
## Otherwise:
#$0 try-restart
#rc_status
;;
reload)
## Like force-reload, but if daemon does not support
## signaling, do nothing (!)
# If it supports signaling:
echo -n "Reload service FOO "
/sbin/killproc -HUP $TRANSMISSION_BIN
#touch /var/run/FOO.pid
rc_status -v
## Otherwise if it does not support reload:
#rc_failed 3
#rc_status -v
;;
*)
echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload}"
exit 1
;;
esac
rc_exit
What can be the source of the problem and where should I look deeper?
Thanks,
rrije.