LinuxQuestions.org
Latest LQ Deal: Latest LQ Deals
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Software
User Name
Password
Linux - Software This forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum.

Notices


Reply
  Search this Thread
Old 11-15-2010, 06:33 AM   #1
rrije
Member
 
Registered: Jul 2010
Distribution: openSUSE 11.4
Posts: 33

Rep: Reputation: Disabled
/etc/init.d script gives "cannot open display" error


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.
 
Old 11-15-2010, 07:37 AM   #2
tiberiu_szm
LQ Newbie
 
Registered: Nov 2010
Distribution: Debian, LFS
Posts: 4

Rep: Reputation: 1
Usually this error pops out when you are logged in the X session (KDE, Gnome, ...) with user U1 and try to run a GUI app as user U2. OTOH i guess you mean transmission-cli, since that seems to be the true CLI version of the p2p client.
 
Old 11-15-2010, 08:07 AM   #3
catkin
LQ 5k Club
 
Registered: Dec 2008
Location: Tamil Nadu, India
Distribution: Debian
Posts: 8,578
Blog Entries: 31

Rep: Reputation: 1208Reputation: 1208Reputation: 1208Reputation: 1208Reputation: 1208Reputation: 1208Reputation: 1208Reputation: 1208Reputation: 1208
Could it be that transmission restart is running the transmission GUI program and what you wanted to do was run /etc/init.d/transmission restart or, if in the /etc/init.d/ directory, ./transmission restart? The which transmission or type transmission commands would show what the shell would run when given a bare transmission command.
 
Old 11-16-2010, 02:01 AM   #4
rrije
Member
 
Registered: Jul 2010
Distribution: openSUSE 11.4
Posts: 33

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by catkin View Post
Could it be that transmission restart is running the transmission GUI program?
You are right; it seems I've actually messed up with transmission symlink in /usr/bin, and instead of pointing to /etc/init.d/transmission it was just /usr/bin/transmission.
So embarrassing.

Thanks for the tip about "which" and "type"!
 
Old 11-16-2010, 02:14 AM   #5
catkin
LQ 5k Club
 
Registered: Dec 2008
Location: Tamil Nadu, India
Distribution: Debian
Posts: 8,578
Blog Entries: 31

Rep: Reputation: 1208Reputation: 1208Reputation: 1208Reputation: 1208Reputation: 1208Reputation: 1208Reputation: 1208Reputation: 1208Reputation: 1208
Quote:
Originally Posted by rrije View Post
You are right; it seems I've actually messed up with transmission symlink in /usr/bin, and instead of pointing to /etc/init.d/transmission it was just /usr/bin/transmission.
No, you didn't mess up; that's how its meant to be. /usr/bin/transmission is for starting the GUI application and /etc/init.d/transmission is for starting whatever transmission needs to start at boot time. The`"gotcha" was that Linux does not start programs in the current directory unless the value of $PATH includes . in it's :-separated list (and there are good reasons for not having it).
 
1 members found this post helpful.
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
"Error: Can't open display" for xclock or gvim on kubuntu root shell konsole 1.6.6 TsanChung Linux - General 3 05-12-2012 01:48 AM
"Can't open display" Error when running X applications remotely vmniza Linux - Networking 8 06-17-2011 05:22 AM
script using "/usr/bin/cat error" produces "cannot open" in cron Dcrusoe Programming 6 07-22-2009 03:30 PM
"Cannot open display" error when trying to start X Server Applications Endoro Linux - Newbie 2 01-02-2009 03:24 PM
scp error: xset: unable to open display "" [KIA]aze Linux - Networking 0 07-14-2007 04:18 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Software

All times are GMT -5. The time now is 12:10 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration