cpualert -check. Resolve configuration errors before continuing.cpualert without switches to monitor in the foreground. Watch the live screen output and confirm the targets or thresholds, monitoring results and any errors. If another instance is already running, stop it first. Foreground monitoring can send real alerts to configured recipients.cpualert -start for long-running background monitoring, cpualert -status to check its status, and cpualert -stop when you want to stop it. Review the product log during unattended operation.cpualert -check cpualert
Observe the live output, then press Ctrl+C. After the foreground process exits:
cpualert -start cpualert -status
Leave the background monitor running for as long as needed. To stop it later:
cpualert -stop
Use the application directory as the working directory for every command. Background mode does not itself configure automatic startup after a reboot.
On Windows use cpualert.exe; on Linux use ./cpualert. Follow the same sequence on each platform.
V2.0 features, SMS setup and licensing
CPUAlert watches system CPU and RAM usage, sends Email, Microsoft Teams, Telegram, and Smartbooth SMS alerts after consecutive High / Low usage checks, alert includeing TOP1-TOP5 process detection, and sends recovery messages when usage returns to normal. Microsoft Teams notification is supported for modern IT operations. No installation required. Edit configuration files and run it in 1 minute. Windows and Linux versions available.
CPUAlert uses an offline local license file named
license.dat.
probe.txt → Purchase License →
Send probe.txt → Receive license.dat → Run production monitoring
cpualert -probe > probe.txt
This command generates the machine information required for license creation.
To purchase or renew your license, please visit:
https://www.smartbooth.com/purchase_lic.htm
Email your generated probe.txt to:
A matching license.dat will then be prepared for your machine.
cpualert -licenseinfo
This command displays current license mode, customer, expire date, and machine matching result.
Download the correct package for your operating system:
CPUAlert is designed for simple server and workstation monitoring where sustained high/low CPU or memory usage needs fast notification.
| File | Description |
|---|---|
cpualert.exe / cpualert | Main monitoring program. |
license.dat | License file. You will receive this after purchasing a license. |
cpualert_setup.txt | CPU and memory monitoring settings. |
cpualert_notify.txt | SMTP, Microsoft Teams webhook, and Telegram settings. |
cpualert_readme.html | This readme file. |
cpualert_log.txt | Runtime log file created by the program. |
curl is available on this system.cpualert_setup.txt to define thresholds and intervals.cpualert_notify.txt to define your SMTP, Microsoft Teams webhook, and Telegram settings.cpualert -check first to validate config format, then run cpualert -test to confirm Email, Microsoft Teams, Telegram, and Smartbooth SMS delivery before enabling background mode.license.dat in the same folder.cpualert.curl --version cpualert cpualert -check cpualert -test cpualert # Verify live output, then press Ctrl+C to exit foreground mode. cpualert -start cpualert -status cpualert -stop cpualert -licenseinfo cpualert -probe
key : "value": as separator. = is not supported by the recommended config standard.
Edit cpualert_setup.txt.
hostid : "192.168.1.2 MYSQL DB" interval : "5" cpuhighthreshold : "85" cpuhighnum : "3" memhighthreshold : "85" memhighnum : "3" cpulowthreshold : "15" cpulownum : "30" memlowthreshold : "20" memlownum : "50"
| Parameter | Description |
|---|---|
hostid | Your label shown in alerts and logs. |
interval | Check interval in seconds. |
cpuhighthreshold | CPU high usage threshold percentage. |
cpuhighnum | Number of consecutive high CPU checks before sending a CPU alert. |
memhighthreshold | Memory high usage threshold percentage. |
memhighnum | Number of consecutive high memory checks before sending a memory alert. |
cpulowthreshold | CPU low usage threshold percentage. |
cpulownum | Number of consecutive low CPU checks before sending a CPU alert. |
memlowthreshold | Memory low usage threshold percentage. |
memlownum | Number of consecutive low memory checks before sending a memory alert. |
Edit cpualert_notify.txt.
* This is the configuration file for Email, Microsoft Teams, Telegram, and Smartbooth SMS alerts. *** Email alert setting server : "smtp://smtp.gmail.com:587" email : "[email protected]" password : "your_app_password" from : "[email protected]" to : "[email protected],[email protected]" iamalive : "[email protected]" *** Microsoft Teams notification. Remove * to enable. *teams_webhook : "https://your-power-automate-webhook-url" *** Telegram notification. Remove * to enable. *token : "your telegram bot token" *chat_id : "-123456789(telegram group chat id)"
teams_webhook in cpualert_notify.txt.cpualert -check to validate the file format.cpualert -test to verify Email, Microsoft Teams, Telegram, and Smartbooth SMS delivery.api-version=1, sv=1.0, and sig=....
Keep the full URL on one line inside double quotes.
| Parameter | Description |
|---|---|
server | SMTP server and port. Example: smtp://smtp.gmail.com:587 |
email | SMTP login account. |
password | SMTP password or app password. The program can auto-convert it to encrypted format. |
from | Sender email address. |
to | Main alert recipients. |
iamalive | Daily keep-alive recipient. IamAlive is sent by Email at midnight. |
teams_webhook | Microsoft Teams / Power Automate webhook URL. Leave blank or mark with * if not used. |
token | Telegram bot token. The program can auto-convert it to encrypted format. |
chat_id | Telegram chat ID or group ID. |
cpuhighthreshold : "85" and cpuhighnum : "3", CPU usage must stay at or above 85% for 3 consecutive checks before an alert is sent.memlowthreshold : "50" and memlownum : "30", MEMORY usage must stay at or below 50% for 30 consecutive checks before an alert is sent.CPU Usage >= 85% count [1] of [3] CPU Usage >= 85% count [2] of [3] CPU Usage >= 85% count [3] of [3] TOP1 CPU usage : PID: 3148 CPU_TIME: 3202.6 sec COMMAND: msedgewebview2.exe TOP2- PID: 37700 CPU_TIME: 327.5 sec COMMAND: CrossDeviceService.exe TOP3- PID: 27340 CPU_TIME: 157.6 sec COMMAND: explorer.exe TOP4- PID: 3384 CPU_TIME: 145.8 sec COMMAND: chrome.exe TOP5- PID: 31372 CPU_TIME: 139.5 sec COMMAND: devenv.exe Sending email alert ... Email command rc=0 Sending Microsoft Teams alert ... Teams command rc=0 Sending Telegram alert ... Telegram command rc=0 MEMORY Usage >= 85% count [1] of [3] MEMORY Usage >= 85% count [2] of [3] MEMORY Usage >= 85% count [3] of [3] TOP1 MEM usage : PID: 3148 %MEM: 5.1 COMMAND: msedgewebview2.exe TOP2- PID: 27340 %MEM: 3.1 COMMAND: explorer.exe TOP3- PID: 134516 %MEM: 3.0 COMMAND: Photos.exe TOP4- PID: 141976 %MEM: 1.9 COMMAND: Photos.exe TOP5- PID: 37700 %MEM: 1.8 COMMAND: CrossDeviceService.exe Sending email alert ... Email command rc=0 Sending Microsoft Teams alert ... Teams command rc=0 Sending Telegram alert ... Telegram command rc=0 Wait 30 seconds for next time check ..... CPU Usage >= 85% Still HIGH (alert already sent) MEMORY Usage >= 85% Still HIGH (alert already sent)
| Item | Trial Limit |
|---|---|
| Email alerts | 2 per day |
| Microsoft Teams alerts | 2 per day |
| Telegram alerts | 2 per day |
| IamAlive | 1 per day |
| Command | Description |
|---|---|
cpualert | Run in foreground mode. |
cpualert -start | Start in background mode. |
cpualert -stop | Stop background process. |
cpualert -status | Check whether the monitor is running. |
cpualert -check | Validate config file format. Use this first to catch = and missing keys. |
cpualert -test | Send test Email, Microsoft Teams, Telegram, and Smartbooth SMS alerts to verify configuration. |
cpualert -probe | Print machine probe information. |
cpualert -licenseinfo | Show current license status. |
cpualert -s | Silent mode. |
cpualert -h / cpualert --help | Show command help and usage summary. |
Recommended command flow: edit config, run cpualert -check and cpualert -test, then use cpualert -start for background monitoring.
CPUAlert.cpualert, license.dat, and config files in the same folder.curl is available by running curl --version.cpualert_log.txt.Email command rc=0 or non-zero return code.token and chat_id.curl is available by running curl --version.Telegram command rc=0 or non-zero return code.teams_webhook in cpualert_notify.txt.curl is available by running curl --version.cpualert -test and check console output for Teams command rc=0.cpuhighnum, memhighnum, cpulownum, and memlownum.license.dat is in the same folder as cpualert.cpualert -licenseinfo to check the reason.curl.curl --version in Command Prompt or terminal.Use the new cpualert_notify.txt configuration for SMTP, Teams, Telegram and Smartbooth SMS. Migrate your previous notification settings to this file. Email messages preserve line breaks so the time, host, failure details and process rows remain readable.
Register at smartbooth.com for free SMS testing. Put your own account settings in the product's _notify.txt file. Multiple phone numbers and email addresses are comma-separated. SMS delivery works independently of SMTP.
sms_url : "https://www.smartbooth.com/smartalert/alert.php" sms_account : "[email protected]" sms_password : "your-password" sms_phone : "+10000000001,+10000000002" sms_email : "[email protected]"
Prefix unused settings with *. The downloadable templates disable notification channels until configured. Run -check first. -test sends real messages to configured recipients.
Trial notifications display [Trial Mode]. Email, Teams and Telegram trial alerts are limited to two per channel per day; IamAlive is limited to one per day. PingAlert and PortAlert trial monitoring is limited to two targets. Windows SMS trial allows two successful deliveries per day. Linux SMS trial allows two attempts, persisted in .alert_sms_trial_state. A valid license removes trial restrictions; application capacity and SMS service charges still apply.
V2.0 adds disk free-space checks, required process/service checks, failure details and Health OK recovery messages alongside CPU/memory thresholds and top-five process reports. Windows GPU health checks display-adapter device status; Linux optionally checks NVIDIA temperature and query failures using nvidia-smi. These checks do not replace the separate GPUAlert product.
health_enabled : "yes" health_disk : "C:\" health_disk_min_free : "10" health_fail_num : "3" *health_services : "Spooler,W32Time" *health_processes : "myserver.exe" *health_gpu : "yes"
health_enabled : "1" health_disk : "/" health_min_free : "10" health_count : "3" health_temperature : "90" health_gpu : "0" *health_process : "nginx" *health_service : "nginx.service"
Windows accepts comma-separated service/executable names. Linux checks one exact process name and one systemd service; enable health_gpu only where NVIDIA nvidia-smi is available. Consecutive failure counts suppress transient failures. Linux ./cpualert -healthcheck prints a read-only health report (exit 0 healthy, 1 failure).
Download the matching Windows or Linux x86-64 ZIP and extract into a dedicated writable directory. Stop the old instance before replacing files and back up your existing settings and license. On Windows, open Command Prompt in that directory and use cpualert.exe. On Linux, change into that directory, run chmod +x cpualert, and prefix commands with ./. Make curl available; PingAlert on Linux also requires ping. No license.dat is included in the trial download.
./cpualert -check ./cpualert -probe > probe.txt ./cpualert -licenseinfo ./cpualert # Verify live output, then press Ctrl+C to exit foreground mode. ./cpualert -start ./cpualert -status ./cpualert -stop
After purchasing, send the product, operating system and probe.txt to Smartbooth for issuance. Put the supplied license.dat in the application directory. Windows and Linux use different product codes and cannot share one license file. Linux V2 uses Ed25519 licenses; older FNV licenses require reissuance. A node license binds to machine identity and MAC; site/portable licenses follow their signed expiration and product restrictions. Keep configuration values quoted using key : "value".
Permanent licenses: Single Tool $49; Any 2 Licenses $89; Complete Bundle $119. A single license covers one product on one host and one operating system. CPUAlert for Windows and CPUAlert for Linux count as two licenses, even on the same physical machine. The Complete Bundle covers CPUAlert, PingAlert and PortAlert on the same host and OS. Permanent licenses include the purchased version forever, plus one year of updates and general email support; later updates/support are optional and quoted separately.
Annual Site plans include all three tools: Small $299/year for up to 10 host/OS installations; Standard $999/year for up to 50; Large $2,499/year for up to 200. Windows and Linux installations can be mixed; each host/OS installation counts separately, including virtual machines. Deployments may be reassigned within the site allowance during the term. Annual plans use one payment for one year and manual renewal, with no automatic recurring charge. Remote IP addresses and ports monitored by PingAlert/PortAlert do not count as installations; application capacity limits still apply. GPUAlert is sold separately. SMS credits and delivery charges are separate.