[yocto] [yocto-autobuilder][PATCH] cleanup and restart crashed vnc server
Joshua G Lock
joshua.g.lock at linux.intel.com
Wed Aug 17 08:59:24 PDT 2016
On Tue, 2016-08-16 at 17:09 -0700, Bill Randle wrote:
> Use a common script to check for a running vnc server, and if not
> running
> cleanup dangling lock files and restart the server.
>
> [YOCTO #8210]
>
> Signed-off-by: Bill Randle <william.c.randle at intel.com>
> ---
> bin/checkvnc | 10
> ++++++++++
> .../site-packages/autobuilder/buildsteps/RunESDKSanityTests.py | 3
> +--
> .../site-packages/autobuilder/buildsteps/RunOeSelftest.py | 3
> +--
> .../site-packages/autobuilder/buildsteps/RunSDKSanityTests.py | 3
> +--
> .../site-packages/autobuilder/buildsteps/RunSanityTests.py | 3
> +--
> 5 files changed, 14 insertions(+), 8 deletions(-)
> create mode 100755 bin/checkvnc
>
> diff --git a/bin/checkvnc b/bin/checkvnc
> new file mode 100755
> index 0000000..574ba48
> --- /dev/null
> +++ b/bin/checkvnc
> @@ -0,0 +1,10 @@
> +#!/bin/sh
> +#
> +# check if vnc server is running, and if not, cleanup and restart
> +#
> +pid=$(pidof Xvnc)
> +if [[ $? != 0 ]]; then
> + echo "Xvnc not running, attempting restart"
> + vncserver -kill :1
> + vncserver
The vncserver is currently started with `vncserver :1`, whereas this
script just calls `vncserver` — is that intentional/desirable?
Would it be a little cleaner/more robust if we didn't assume only one
Xvnc instance was running and instead write the pid of the process we
start to a file and use that file to check the status?
Regards,
Joshua
> +fi
> diff --git a/lib/python2.7/site-
> packages/autobuilder/buildsteps/RunESDKSanityTests.py
> b/lib/python2.7/site-
> packages/autobuilder/buildsteps/RunESDKSanityTests.py
> index 7471d3d..c16c8c2 100644
> --- a/lib/python2.7/site-
> packages/autobuilder/buildsteps/RunESDKSanityTests.py
> +++ b/lib/python2.7/site-
> packages/autobuilder/buildsteps/RunESDKSanityTests.py
> @@ -47,8 +47,7 @@ class RunESDKSanityTests(BitbakeShellCommand):
> layerversion = self.getProperty("layerversion_core")
> command = ""
> command = command + ". ./oe-init-build-env; "
> - command = command + "netstat -an | grep -q 5901 ;"
> - command = command + 'if [ $? -ne 0 ]; then echo "Starting a
> VNC server on :1"; vncserver :1; else echo "Will use a VNC server
> already running on :1"; fi;'
> + command = command + "checkvnc; "
> if layerversion and int(layerversion) >= 7:
> command = command + "echo 'INHERIT += \"testsdk\"' >>
> ./conf/auto.conf;"
> command = command + "echo 'TEST_QEMUBOOT_TIMEOUT =
> \"1500\"' >> ./conf/auto.conf;"
> diff --git a/lib/python2.7/site-
> packages/autobuilder/buildsteps/RunOeSelftest.py
> b/lib/python2.7/site-packages/autobuilder/buildsteps/RunOeSelftest.py
> index 809bcc3..84d32fe 100644
> --- a/lib/python2.7/site-
> packages/autobuilder/buildsteps/RunOeSelftest.py
> +++ b/lib/python2.7/site-
> packages/autobuilder/buildsteps/RunOeSelftest.py
> @@ -31,8 +31,7 @@ class RunOeSelftest(ShellCommand):
> def start(self):
> self.command = ""
> self.command += ". ./oe-init-build-env; "
> - self.command += "netstat -an | grep -q 5901 ;"
> - self.command += "if [ $? -ne 0 ]; then echo 'Starting a VNC
> server on :1'; vncserver :1; else echo 'Will use a VNC server already
> running on :1'; fi;"
> + self.command += "checkvnc; "
> if self.tests == None:
> self.command += "if [ -d ../meta-selftest ]; then export
> DISPLAY=:1; oe-selftest --run-all-tests; else echo 'Skipping step -
> no meta-selftest layer here'; fi"
> else:
> diff --git a/lib/python2.7/site-
> packages/autobuilder/buildsteps/RunSDKSanityTests.py
> b/lib/python2.7/site-
> packages/autobuilder/buildsteps/RunSDKSanityTests.py
> index 9b6eb5b..6fb3127 100644
> --- a/lib/python2.7/site-
> packages/autobuilder/buildsteps/RunSDKSanityTests.py
> +++ b/lib/python2.7/site-
> packages/autobuilder/buildsteps/RunSDKSanityTests.py
> @@ -47,8 +47,7 @@ class RunSDKSanityTests(BitbakeShellCommand):
> layerversion = self.getProperty("layerversion_core")
> command = ""
> command = command + ". ./oe-init-build-env; "
> - command = command + "netstat -an | grep -q 5901 ;"
> - command = command + 'if [ $? -ne 0 ]; then echo "Starting a
> VNC server on :1"; vncserver :1; else echo "Will use a VNC server
> already running on :1"; fi;'
> + command = command + "checkvnc; "
> if layerversion and int(layerversion) >= 6:
> command = command + "echo 'INHERIT += \"testimage\"' >>
> ./conf/auto.conf;"
> command = command + "echo 'TEST_QEMUBOOT_TIMEOUT =
> \"1500\"' >> ./conf/auto.conf;"
> diff --git a/lib/python2.7/site-
> packages/autobuilder/buildsteps/RunSanityTests.py
> b/lib/python2.7/site-
> packages/autobuilder/buildsteps/RunSanityTests.py
> index 4fa6dac..81e20cd 100644
> --- a/lib/python2.7/site-
> packages/autobuilder/buildsteps/RunSanityTests.py
> +++ b/lib/python2.7/site-
> packages/autobuilder/buildsteps/RunSanityTests.py
> @@ -48,8 +48,7 @@ class RunSanityTests(BitbakeShellCommand):
> distro = self.getProperty("DISTRO")
> command = ""
> command = command + ". ./oe-init-build-env; "
> - command = command + "netstat -an | grep -q 5901 ;"
> - command = command + 'if [ $? -ne 0 ]; then echo "Starting a
> VNC server on :1"; vncserver :1; else echo "Will use a VNC server
> already running on :1"; fi;'
> + command = command + "checkvnc; "
> if distro == "poky-lsb" and layerversion and
> int(layerversion) < 6:
> command = "echo 'Skipping step.'"
> elif layerversion and int(layerversion) > 1:
More information about the yocto
mailing list