-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathauto_mine_idleV1.ps1
66 lines (62 loc) · 2.84 KB
/
auto_mine_idleV1.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
$primaryProcess = "MetaTester64"
$secondaryProcess = "hellminer"
$secondaryParams = "-c stratum+ssl://na.luckpool.net:3958 -u RSZ2LTUESkABVfGFASxLSzddpLwcyjUiNj.$env:ComputerName -p hybrid --cpu 3"
$threshold = 1
$startCount = 0
$secondaryProcessStarted = $false
while ($true) {
$primaryCpuUsage = 0
if ($primaryProcess) {
$processes = Get-WmiObject Win32_PerfFormattedData_PerfProc_Process | Where-Object {$_.Name -eq $primaryProcess}
if ($processes) {
foreach ($process in $processes) {
$primaryCpuUsage += $process.PercentProcessorTime
}
} else {
Write-Host "$primaryProcess is not running."
}
}
if ($primaryCpuUsage) {
$primaryCpuUsage = [int]($primaryCpuUsage)
if ($primaryCpuUsage -gt $threshold) {
if ($secondaryProcessStarted) {
Write-Host "$primaryProcess is using $primaryCpuUsage% of CPU. Stopping $secondaryProcess..."
$secondaryRunning = Get-Process -Name $secondaryProcess -ErrorAction SilentlyContinue
if ($secondaryRunning) {
Stop-Process -Name $secondaryProcess -Force
Write-Host "$secondaryProcess has been stopped."
} else {
Write-Host "$secondaryProcess is already stopped."
}
$secondaryProcessStarted = $false
} else {
Write-Host "$primaryProcess is using $primaryCpuUsage% of CPU."
}
} else {
Write-Host "$primaryProcess is using $primaryCpuUsage% of CPU."
$secondaryRunning = Get-Process -Name $secondaryProcess -ErrorAction SilentlyContinue
if (!$secondaryRunning -and !$secondaryProcessStarted) {
Write-Host "Starting $secondaryProcess..."
Start-Process -FilePath $secondaryProcess -ArgumentList $secondaryParams
$startCount++
Write-Host "Secondary program has been started $startCount times."
$secondaryProcessStarted = $true
} elseif ($secondaryProcessStarted) {
Write-Host "$secondaryProcess is already running."
}
}
} else {
Write-Host "$primaryProcess is idle."
$secondaryRunning = Get-Process -Name $secondaryProcess -ErrorAction SilentlyContinue
if (!$secondaryRunning -and !$secondaryProcessStarted) {
Write-Host "Starting $secondaryProcess..."
Start-Process -FilePath $secondaryProcess -ArgumentList $secondaryParams
$startCount++
Write-Host "Secondary program has been started $startCount times."
$secondaryProcessStarted = $true
} elseif ($secondaryProcessStarted) {
Write-Host "$secondaryProcess is already running."
}
}
Start-Sleep -Seconds 2
}