mirror of
https://github.com/vitodeploy/vito.git
synced 2025-07-02 14:36:17 +00:00
add enable/disable services
This commit is contained in:
@ -51,4 +51,34 @@ public function restart(Service $service): void
|
||||
$service->save();
|
||||
})->onConnection('ssh');
|
||||
}
|
||||
|
||||
public function enable(Service $service): void
|
||||
{
|
||||
$service->status = ServiceStatus::ENABLING;
|
||||
$service->save();
|
||||
dispatch(function () use ($service) {
|
||||
$status = $service->server->systemd()->enable($service->unit);
|
||||
if (str($status)->contains('Active: active')) {
|
||||
$service->status = ServiceStatus::READY;
|
||||
} else {
|
||||
$service->status = ServiceStatus::FAILED;
|
||||
}
|
||||
$service->save();
|
||||
})->onConnection('ssh');
|
||||
}
|
||||
|
||||
public function disable(Service $service): void
|
||||
{
|
||||
$service->status = ServiceStatus::DISABLING;
|
||||
$service->save();
|
||||
dispatch(function () use ($service) {
|
||||
$status = $service->server->systemd()->disable($service->unit);
|
||||
if (str($status)->contains('Active: inactive')) {
|
||||
$service->status = ServiceStatus::DISABLED;
|
||||
} else {
|
||||
$service->status = ServiceStatus::FAILED;
|
||||
}
|
||||
$service->save();
|
||||
})->onConnection('ssh');
|
||||
}
|
||||
}
|
||||
|
@ -23,4 +23,10 @@ final class ServiceStatus extends Enum
|
||||
const RESTARTING = 'restarting';
|
||||
|
||||
const STOPPED = 'stopped';
|
||||
|
||||
const ENABLING = 'enabling';
|
||||
|
||||
const DISABLING = 'disabling';
|
||||
|
||||
const DISABLED = 'disabled';
|
||||
}
|
||||
|
@ -44,4 +44,22 @@ public function restart(Server $server, Service $service): RedirectResponse
|
||||
|
||||
return back();
|
||||
}
|
||||
|
||||
public function enable(Server $server, Service $service): RedirectResponse
|
||||
{
|
||||
$service->enable();
|
||||
|
||||
Toast::success('Service is being enabled!');
|
||||
|
||||
return back();
|
||||
}
|
||||
|
||||
public function disable(Server $server, Service $service): RedirectResponse
|
||||
{
|
||||
$service->disable();
|
||||
|
||||
Toast::success('Service is being disabled!');
|
||||
|
||||
return back();
|
||||
}
|
||||
}
|
||||
|
@ -93,4 +93,14 @@ public function restart(): void
|
||||
{
|
||||
app(Manage::class)->restart($this);
|
||||
}
|
||||
|
||||
public function enable(): void
|
||||
{
|
||||
app(Manage::class)->enable($this);
|
||||
}
|
||||
|
||||
public function disable(): void
|
||||
{
|
||||
app(Manage::class)->disable($this);
|
||||
}
|
||||
}
|
||||
|
@ -13,7 +13,7 @@ public function __construct(protected Server $server)
|
||||
public function status(string $unit): string
|
||||
{
|
||||
$command = <<<EOD
|
||||
sudo service $unit status | cat
|
||||
sudo systemctl status $unit | cat
|
||||
EOD;
|
||||
|
||||
return $this->server->ssh()->exec($command, sprintf('status-%s', $unit));
|
||||
@ -22,8 +22,8 @@ public function status(string $unit): string
|
||||
public function start(string $unit): string
|
||||
{
|
||||
$command = <<<EOD
|
||||
sudo service $unit start
|
||||
sudo service $unit status | cat
|
||||
sudo systemctl start $unit
|
||||
sudo systemctl status $unit | cat
|
||||
EOD;
|
||||
|
||||
return $this->server->ssh()->exec($command, sprintf('start-%s', $unit));
|
||||
@ -32,8 +32,8 @@ public function start(string $unit): string
|
||||
public function stop(string $unit): string
|
||||
{
|
||||
$command = <<<EOD
|
||||
sudo service $unit stop
|
||||
sudo service $unit status | cat
|
||||
sudo systemctl stop $unit
|
||||
sudo systemctl status $unit | cat
|
||||
EOD;
|
||||
|
||||
return $this->server->ssh()->exec($command, sprintf('stop-%s', $unit));
|
||||
@ -42,10 +42,32 @@ public function stop(string $unit): string
|
||||
public function restart(string $unit): string
|
||||
{
|
||||
$command = <<<EOD
|
||||
sudo service $unit restart
|
||||
sudo service $unit status | cat
|
||||
sudo systemctl restart $unit
|
||||
sudo systemctl status $unit | cat
|
||||
EOD;
|
||||
|
||||
return $this->server->ssh()->exec($command, sprintf('restart-%s', $unit));
|
||||
}
|
||||
|
||||
public function enable(string $unit): string
|
||||
{
|
||||
$command = <<<EOD
|
||||
sudo systemctl start $unit
|
||||
sudo systemctl enable $unit
|
||||
sudo systemctl status $unit | cat
|
||||
EOD;
|
||||
|
||||
return $this->server->ssh()->exec($command, sprintf('enable-%s', $unit));
|
||||
}
|
||||
|
||||
public function disable(string $unit): string
|
||||
{
|
||||
$command = <<<EOD
|
||||
sudo systemctl stop $unit
|
||||
sudo systemctl disable $unit
|
||||
sudo systemctl status $unit | cat
|
||||
EOD;
|
||||
|
||||
return $this->server->ssh()->exec($command, sprintf('disable-%s', $unit));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user