Who Am I

I’m Martyn and have gone by the pseudo name Marty McFly for a little while.

I’m currently completing my PhD in Cosmology with Clusters of Galaxies at Liverpool John Moores University, before I sell my soul to the programming devil and become a professional software developer.
I’m a STEM Ambassador with MerseyStem
A site about my life, a little bit of my work and things I enjoy.

Shutdown Linux via the Web

So a problem I’ve had with a project I’ve worked on is how do you shutdown your Linux server (in our case a Raspberry Pi) when its a headless web server.

Headless: Running with no monitor, keyboard and mouse, its not a requirement of this method, but it creates the problem.

Solutions – So there are several solutions to this:

Login via SSH

Open a Terminal and SSH to the box, then run “poweroff“
Ohh but we have touchscreens!

SSH Keys

Were on Windows!

Putty

Client installer

PHP-Shutdown

So we want a server based ability to shutdown a Linux/Unix box such as a Raspberry Pi, or intact run any privileged command.
The obvious answer is give your apache user root privileges and get PHP to execute a poweroff.
But hang-on, before you go handing your keys to your web server, this is VERY DANGEROUS and basically opens your machine to attack.

Solution

PHP-Shutdown – Writes a temporary file
CRON Job – Runs Command check frequently
Command Check – Looks out for the temp files in /tmp and acts upon them.

Records to Grid in Python

So one of the big problems I’ve had is how to convert data in recordset, from an SQL database into a grid so it can be plotted with Matplotlib. So you maybe asking what recordset is, well its where each entry is in a row.

Example

Recordset

X Y Z
0 0 1

Grid

Recordset

table.tr:last-child{background-color:black;}
table.tr.td:first-child{background-color:black;}

1
0 1
0 1