diff --git a/app/Actions/CoolifyTask/RunRemoteProcess.php b/app/Actions/CoolifyTask/RunRemoteProcess.php
index ef0c9e59b..327d46c68 100644
--- a/app/Actions/CoolifyTask/RunRemoteProcess.php
+++ b/app/Actions/CoolifyTask/RunRemoteProcess.php
@@ -27,7 +27,7 @@ class RunRemoteProcess
protected $last_write_at = 0;
- protected $throttle_interval_ms = 500;
+ protected $throttle_interval_ms = 200;
protected int $counter = 1;
@@ -74,8 +74,14 @@ class RunRemoteProcess
$this->time_start = hrtime(true);
$status = ProcessStatus::IN_PROGRESS;
- $processResult = Process::forever()->run($this->getCommand(), $this->handleOutput(...));
+ $timeout = config('constants.ssh.command_timeout');
+ $process = Process::timeout($timeout)->start($this->getCommand(), $this->handleOutput(...));
+ $this->activity->properties = $this->activity->properties->merge([
+ 'process_id' => $process->id(),
+ ]);
+ $processResult = $process->wait();
+ // $processResult = Process::timeout($timeout)->run($this->getCommand(), $this->handleOutput(...));
if ($this->activity->properties->get('status') === ProcessStatus::ERROR->value) {
$status = ProcessStatus::ERROR;
} else {
@@ -131,7 +137,6 @@ class RunRemoteProcess
}
$this->current_time = $this->elapsedTime();
$this->activity->description = $this->encodeOutput($type, $output);
-
if ($this->isAfterLastThrottle()) {
// Let's write to database.
DB::transaction(function () {
diff --git a/app/Data/CoolifyTaskArgs.php b/app/Data/CoolifyTaskArgs.php
index 584fadb98..cc717561f 100644
--- a/app/Data/CoolifyTaskArgs.php
+++ b/app/Data/CoolifyTaskArgs.php
@@ -16,6 +16,7 @@ class CoolifyTaskArgs extends Data
public string $command,
public string $type,
public ?string $type_uuid = null,
+ public ?int $process_id = null,
public ?Model $model = null,
public ?string $status = null ,
public bool $ignore_errors = false,
diff --git a/app/Enums/ProcessStatus.php b/app/Enums/ProcessStatus.php
index 889aca9f2..0031cabdd 100644
--- a/app/Enums/ProcessStatus.php
+++ b/app/Enums/ProcessStatus.php
@@ -8,5 +8,6 @@ enum ProcessStatus: string
case IN_PROGRESS = 'in_progress';
case FINISHED = 'finished';
case ERROR = 'error';
+ case KILLED = 'killed';
case CANCELLED = 'cancelled';
}
diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php
index ca5d427c5..47bc35b5d 100644
--- a/resources/views/layouts/app.blade.php
+++ b/resources/views/layouts/app.blade.php
@@ -11,4 +11,46 @@
{{ $slot }}
+
@endsection
diff --git a/resources/views/layouts/base.blade.php b/resources/views/layouts/base.blade.php
index c6a5d6edc..40464ef46 100644
--- a/resources/views/layouts/base.blade.php
+++ b/resources/views/layouts/base.blade.php
@@ -46,46 +46,6 @@