summary refs log tree commit diff
path: root/pkgs/tools/virtualization
diff options
context:
space:
mode:
authorPeter Hoeg <peter@hoeg.com>2018-04-20 11:07:07 +0800
committerPeter Hoeg <peter@hoeg.com>2018-04-20 11:07:07 +0800
commitb95a24fdf1f751c44282f6c38b84b763a85eee19 (patch)
tree3413741acd4f0474a98cd0c1f655792f3288ff7d /pkgs/tools/virtualization
parent6c064e6b1f34a8416f990db0cc617a7195f71588 (diff)
downloadnixpkgs-b95a24fdf1f751c44282f6c38b84b763a85eee19.tar
nixpkgs-b95a24fdf1f751c44282f6c38b84b763a85eee19.tar.gz
nixpkgs-b95a24fdf1f751c44282f6c38b84b763a85eee19.tar.bz2
nixpkgs-b95a24fdf1f751c44282f6c38b84b763a85eee19.tar.lz
nixpkgs-b95a24fdf1f751c44282f6c38b84b763a85eee19.tar.xz
nixpkgs-b95a24fdf1f751c44282f6c38b84b763a85eee19.tar.zst
nixpkgs-b95a24fdf1f751c44282f6c38b84b763a85eee19.zip
nixos-container: support restarts
Diffstat (limited to 'pkgs/tools/virtualization')
-rwxr-xr-xpkgs/tools/virtualization/nixos-container/nixos-container.pl17
1 files changed, 15 insertions, 2 deletions
diff --git a/pkgs/tools/virtualization/nixos-container/nixos-container.pl b/pkgs/tools/virtualization/nixos-container/nixos-container.pl
index 2cb723a7b71..a210a65f431 100755
--- a/pkgs/tools/virtualization/nixos-container/nixos-container.pl
+++ b/pkgs/tools/virtualization/nixos-container/nixos-container.pl
@@ -242,11 +242,21 @@ sub terminateContainer {
     while ( kill 0, $leader ) { Time::HiRes::sleep(0.1) }
 }
 
+sub startContainer {
+    system("systemctl", "start", "container\@$containerName") == 0
+        or die "$0: failed to start container\n";
+}
+
 sub stopContainer {
     system("systemctl", "stop", "container\@$containerName") == 0
         or die "$0: failed to stop container\n";
 }
 
+sub restartContainer {
+    stopContainer;
+    startContainer;
+}
+
 # Run a command in the container.
 sub runInContainer {
     my @args = @_;
@@ -285,9 +295,12 @@ if ($action eq "destroy") {
     unlink($confFile) or die;
 }
 
+elsif ($action eq "restart") {
+    restartContainer;
+}
+
 elsif ($action eq "start") {
-    system("systemctl", "start", "container\@$containerName") == 0
-        or die "$0: failed to start container\n";
+    startContainer;
 }
 
 elsif ($action eq "stop") {