Persistent Terminals For a Dedicated Computing Box?
Theovon writes "I just built a high-end quad-core Linux PC dedicated to number-crunching. Its job is to sit in the corner with no keyboard, mouse, or monitor and do nothing but compute (genetic algorithms, neural nets, and other research). My issue is that I would like to have something like persistent terminal sessions. I've considered using Xvnc in a completely headless configuration (some useful documentation here, here, here, and here). However, for most of my uses, this is overkill. Total waste of memory and compute time. However, if I decided to run FPGA synthesis software under WINE, this will become necessary. Unfortunately, I can't quite figure out how to get persistent X11 session where I'm automatically logged in (or can stay logged in), while maintaining enough security that I don't mind opening the VNC port on my firewall (with a changed port number, of course). I'm also going to check out Xpra, but I've only just heard about it and have no idea how to use it. For the short term, the main need is just terminals. I'd like to be able to connect and see how something is going. One option is to just run things with nohup and then login and 'tail -f' to watch the log file. I've also heard of screen, but I'm unfamiliar with it. Have other Slashdot users encountered this situation? What did you use? What's hard, what's easy, and what works well?"
For your standard persistent terminals, SCREEN is really your best bet
Captain Obviousman.
The Raven
You could use VNC, but set it up so the vnc server is only accessible via localhost, and then use ssh to create a secure tunnel back to your client. Alternatively I sometimes use vnc and ssh with X11 forwarding, i.e. the actual graphical data being sent over the network is over X11 as opposed to VNC's protocol.
screen is cool and pretty easy to use, RTFM. But its command-line only, so not applicable if you need GUI as well.
Yum distro:
yum install screen
man screen
Apt distro:
apt-get install screen
man screen
There's no failure quite as dissatisfying as a complete and total solution to the wrong problem.
Nothing beats screen for terminals.
I use irssi + screen so I can be in some of my irc channels all the time, and connect to it from wherever I can run an ssh client.
Given that it's made specifically for persistent terminals across login sessions, Screen is definitely worth learning. If your needs are text-based, it's the best way to go.
It sounds like your GUI needs are rare. In those occasions you could probably fire up a VNC or other session when you need it (from the remote screen session) and shut it down again when you're done.
SIG: 11
Use screen for terminals. x11vnc for GUI. x11vnc can be run over encryption. Look at http://www.karlrunge.com/x11vnc/ for more info.
For persistent GUI sessions, I generally use nx/nxserver/freenx:
http://freenx.berlios.de/
For console sessions, nothing beats "screen". I use the command "screen -m -R" to create and/or reconnect to an existing session.
I used to like VNC, but I got tired of how difficult it was to set up. On Windows boxes, I stick to Remote Desktop Connection.
http://www.icsi.berkeley.edu/~wooters/persistentX.html
I've not tried this but it looks good.
Some for vnc
http://www.novell.com/coolsolutions/feature/16011.html
With xinetd?
http://newsgroups.derkeiler.com/Archive/Uk/uk.comp.os.linux/2006-02/msg00109.html
I'd go on a Vegan diet but the delivery time from Vega is too long. --brownkitty
This is what I do every morning to get into work.
Start up a VNC server on the remote box and leave it running. No need to open holes in your firewall except for SSH, which is pretty safe to do.
To tunnel through the firewall and log in, type these commands on your local machine:
Voila: VNC connection, secured by SSH. When you are done just
. :1 VNC session, 5902 means :2, etc.
Note that 5901 means the
Here's a quick primer. These are the commands I use all the time. There are a ton more in the man pages or online help.
"screen" to start a new shell under screen
All commands start with CTRL-A, then another key for the command itself. If you really want to send a CTRL-A to your application (Like to go to the beginning of the current line in bash for example, hit CTRL-A twice.)
CTRL-A CTRL-D Detach your current session
"screen -rd" to get back to it
CTRL-A CTRL-C create another "window"
CTRL-A CTRL-N next window
CTRL-A CTRL-P previous window
CTRL-A " see list of current windows
CTRL-A [ Copy mode... you can see the scrollback buffer with this. Esc to exit
CTRL-A ? Help for further stuff.
I run just one instance of screen with multiple "windows." Works beautifully. When you start running more than one screen process under the same user it can make it difficult to re-attach because you have to tell it which pty to attach to.
Nicodemus
The xilinx fpga tools run just fine (perhaps better) from the command line, and have native ports to linux. I believe the same is true for Altera. If you run the xilinx gui tool with the command line log file turned on, it will give you a look at what's required.
IIRC, screen has a pretty detailed man page and has been around a very long time, so should be pretty easy to find examples of setting it up.
For X, usually the real pig is the display server. If you have to run X read up on using the DISPLAY environment variable and just run the X clients on the box and run the server somewhere else - that's what it was made for ;-)
-- All that's left of me, is slight insanity, whats on the right, I don't know. -- Bob Mould
Check out Sunrays. You can get them on ebay for cheap ( $20), and download the software from Sun. They have a linux version. Get some Sunray cards. You just stick the card into the slot, log in, and work. Remove the card, your session disappears from that terminal. Go to another terminal, put in your card, and your session appears.
All code except system calls runs natively, and therefore just as fast as native code.
...I've always had more luck getting it to work right than with freenx. But the latter has a KDE session integration now so the auther may want to look into that.
The session handling and preservation of nxserver is very good.
Not seperate ssh server... unless you're on Windows?
Separate key is needed because nx must do session/login management from root. Simple as that. Once I grasped that, the rest came easy (I will admit to being familiar with ssh configuration though).
Sun make pretty neat thin-client terminals called Sun Ray. Can work with either Linux or Solaris servers.
NB: I'm biased, as I work for Sun.
I use Friend/Foe + mod-point modifiers as a karma/reputation system.
From the article: For the short term, the main need is just terminals.
(my strong emphasis)
I would guess mrmeval was looking at "However, if I decided to run FPGA synthesis software under WINE, [some system that supports graphics] will become necessary." in the article. I don't think this FPGA synthesis software can be operated completely from the command prompt.
Once you're comfortable with screen, which only took me a couple days, back in the mid 90s, add this as the last line of your .bash_profile
exec /usr/bin/screen -xRR
Upon ssh'ing into the box, that'll set up a screen session, or if one currently exists, reattach to it.
Also, if you log in multiple times, from different PCs or whatever, all your logins see the same screen session, which can be convenient if you're "sharing" logins.
To disconnect from the session, just "C-a z" and your ssh connection will drop.
You'll probably want to customize your .screenrc file also. I advise setting
vbell off .... you get the idea ..... ... etc ...
escape ^zz
nonblock on
deflogin off
startup_message off
screen -t procinfo 0 watch -n 60 procinfo
screen -t bash 1
bindkey -k k1 select 1
bindkey -k k2 select 2
bindkey -k k; select 110
bindkey -k F1 select 11
bindkey -k F2 select 12
Oh and set a useful caption line too.
"Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
so is google. im not against people looking for help, but i would think ask slashdot could limit itself to unusual problems. ssh/x forwarding/screen is pretty elementary stuff.
what a ridiculous thing to put on the front page. any number of forums or HOWTOs probably provide all the information the submitter is looking for, so id like him to read this.it looks long, but its a quick read.
How to ask questions the smart way
By and large, language is a tool for concealing the truth. -- George Carlin
Easy; plug in the Ethernet, boot a Gentoo LiveCD, and a minute after the disc access has stopped, type the following (carefully) at the assumed # prompt:
# ifconfig eth0 [a known IP] /etc/init.d/ssh start
#
# passwd
[enter a password for root, twice]
SSH in from another box, and you're done! Worked fine for me, installing Gentoo on a Kanga with a broken screen from three timezones away.
Of course, it assumes that the Ethernet card is working, and that the kernel picks it up as eth0. If the network lights up but you get no joy, try a LAN-wide ping sweep; I've had to do that a coupla times when this kinda thing's cropped up.
xkcdsw: the unofficial archive of Making xkcd Slightly Worse