Skip to content

A static build of screen for coreos (or any other 64bits linux)

Notifications You must be signed in to change notification settings

the-unbelievable-machine/screen-static-coreos

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A static screen for coreos

This is screen compiled statically for CoreOS. CoreOS does not have screen, so it is a bit painfull to have long lasting jobs without using a container, which many disadvantages.

You can build the whole thing with ./build.sh, and you should end up with a static binary in:

$ file bin/screen 
bin/screen: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, BuildID[sha1]=1e30fe78feb9d9893cbec412e2d9a176a5d2501c, not stripped

How to run it

As user core, download the screen binary:

$ whoami
core
$ pwd
/home/core
$ wget https://github.com/zoobab/screen-static-coreos/raw/master/bin/screen

Then make it executable:

$ chmod +x screen

Then you can run:

$ ./screen -dm ping 127.0.0.1

List the sessions:

$ ./screen -ls

SSHD kills processes

Somehow SSHD or SystemD kills the processes once you leave the SSH session.

This is due to the "ClientAliveInterval" SSHD parameter in /etc/ssh/sshd_config:

$ sudo cat /etc/ssh/sshd_config 
# Use most defaults for sshd configuration.
UsePrivilegeSeparation sandbox
Subsystem sftp internal-sftp
ClientAliveInterval 180
UseDNS no

If you remove it (CoreOS is read-only :-) and just run an SSH server on another port without this option, my experience shows that screen sessions are not killed.

Another solution

If sudo allows it, you can run systemd-run (see examples for screen here: https://www.freedesktop.org/software/systemd/man/systemd-run.html):

$ sudo systemd-run --scope  /home/core/screen bash

Then detach with CTRL+A+D.

To list the sessions:

$ sudo systemd-run --scope  /home/core/screen -ls
Running scope as unit run-27936.scope.
There is a screen on:
    27817.pts-0.hostname (Detached)
1 Socket in /tmp/screens/S-root.

You can also launch a session directly as core user instead of root:

$ sudo systemd-run --scope  /home/core/screen bash -c "su - core"
Update Strategy: No Reboots
core@registry00-k8s1 ~ $ whoami
core
core@registry00-k8s1 ~ $

About

A static build of screen for coreos (or any other 64bits linux)

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 91.3%
  • Dockerfile 4.0%
  • Shell 3.8%
  • Makefile 0.9%