-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfigure-windows-service.html
More file actions
130 lines (129 loc) · 16.1 KB
/
configure-windows-service.html
File metadata and controls
130 lines (129 loc) · 16.1 KB
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
<title>Run PostgreSQL as a Windows Service — Configure, Start, Stop and Recover</title>
<meta name="description" content="Configure PostgreSQL as a Windows service on Windows 10 and 11. Start, stop, restart commands, startup type, recovery on failure and log file locations.">
<link rel="canonical" href="https://postgre-sql.github.io/configure-windows-service.html">
<meta name="last-modified" content="2026-06-08">
<meta property="og:title" content="Run PostgreSQL as a Windows Service — Configure, Start, Stop and Recover">
<meta property="og:description" content="Configure PostgreSQL as a Windows service on Windows 10 and 11. Start, stop, restart commands, startup type, recovery on failure and log file locations.">
<meta property="og:type" content="article">
<meta property="og:url" content="https://postgre-sql.github.io/configure-windows-service.html">
<meta property="og:image" content="https://postgre-sql.github.io/og-image.svg">
<meta name="twitter:card" content="summary_large_image">
<link rel="icon" href="/favicon.svg">
<link rel="stylesheet" href="/style.css">
</head>
<body>
<nav class="site-nav"><div class="wrap"><div class="nav-inner">
<a href="/index.html" class="nav-logo"><div class="nav-logo-mark">Pg</div><span class="nav-logo-name">PostgreSQL</span><span class="nav-logo-sub">for Windows</span></a>
<div class="nav-links">
<a href="/index.html" id="nl-home">Home</a>
<a href="/download-windows.html" id="nl-dl">Download</a>
<a href="/offline-installer.html" id="nl-off">Offline</a>
<a href="/configure-windows-service.html" id="nl-svc">Service</a>
<a href="/fix-path-issues.html" id="nl-path">PATH fix</a>
<a href="/pgadmin-windows.html" id="nl-pgadmin">pgAdmin</a>
<a href="/postgresql-windows-faq.html" id="nl-faq">FAQ</a>
</div>
<a href="/download-windows.html" class="nav-cta"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/></svg> Download</a>
</div></div></nav>
<div class="page-hero"><div class="wrap">
<nav class="breadcrumb"><a href="/index.html">home</a> <span>/</span> <span>configure-windows-service</span></nav>
<span class="page-tag">Service guide</span>
<h1>Run PostgreSQL as a Windows service — <span>configure, start & recover</span></h1>
<p class="page-lead">PostgreSQL installs as a Windows service named postgresql-x64-18. Covers start/stop commands, automatic startup, recovery on failure and log file locations.</p>
</div></div>
<div class="wrap"><div class="content-layout">
<main><div class="callout callout-info"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="9"/><line x1="12" y1="8" x2="12" y2="12"/><line x1="12" y1="16" x2="12.01" y2="16"/></svg><span>Adjust the version number in service names if you installed PostgreSQL 16 or 17 instead of 18. Run <code>sc query type= all | findstr postgresql</code> to find your exact service name.</span></div>
<div class="section" aria-labelledby="status-h2"><span class="section-label">Check status</span><h2 id="status-h2">Check if the PostgreSQL service is running</h2>
<div class="term"><div class="term-bar"><div class="term-dot" style="background:#ff5f56"></div><div class="term-dot" style="background:#ffbd2e"></div><div class="term-dot" style="background:#27c93f"></div><span class="term-label">cmd.exe</span></div><div class="term-body"><div><span class="t-p">C:\></span> <span class="t-c">sc query postgresql-x64-18</span></div><div><span class="t-v">STATE : 4 RUNNING</span></div><div></div><div><span class="t-p">PS></span> <span class="t-c">Get-Service postgresql-x64-18 | Select Status,Name</span></div><div><span class="t-ok">Running postgresql-x64-18</span></div></div></div>
</div>
<div class="section" aria-labelledby="manage-h2"><span class="section-label">Start / stop / restart</span><h2 id="manage-h2">Manage the service from the command line</h2>
<div class="term"><div class="term-bar"><div class="term-dot" style="background:#ff5f56"></div><div class="term-dot" style="background:#ffbd2e"></div><div class="term-dot" style="background:#27c93f"></div><span class="term-label">cmd.exe — Administrator</span></div><div class="term-body"><div><span class="t-p">C:\></span> <span class="t-c">net start postgresql-x64-18</span></div><div><span class="t-ok">The postgresql-x64-18 service was started successfully.</span></div><div></div><div><span class="t-p">C:\></span> <span class="t-c">net stop postgresql-x64-18</span></div><div><span class="t-ok">The postgresql-x64-18 service was stopped successfully.</span></div></div></div>
<p>You can also use Services (Win+R → <code>services.msc</code>): find <strong>postgresql-x64-18</strong> and right-click for Start, Stop or Restart.</p>
</div>
<div class="section" aria-labelledby="startup-h2"><span class="section-label">Startup type</span><h2 id="startup-h2">Configure automatic startup on boot</h2>
<div class="term"><div class="term-bar"><div class="term-dot" style="background:#ff5f56"></div><div class="term-dot" style="background:#ffbd2e"></div><div class="term-dot" style="background:#27c93f"></div><span class="term-label">cmd.exe — Administrator</span></div><div class="term-body"><div><span class="t-cm"># Automatic (default — starts with Windows):</span></div><div><span class="t-p">C:\></span> <span class="t-c">sc config postgresql-x64-18 start= auto</span></div><div></div><div><span class="t-cm"># Manual (start on demand only):</span></div><div><span class="t-p">C:\></span> <span class="t-c">sc config postgresql-x64-18 start= demand</span></div></div></div>
<div class="callout callout-warn"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/><line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/></svg><span>Note the space after <code>start=</code> — required syntax for the sc command.</span></div>
</div>
<div class="section" aria-labelledby="recovery-h2"><span class="section-label">Recovery</span><h2 id="recovery-h2">Restart automatically on failure</h2>
<div class="term"><div class="term-bar"><div class="term-dot" style="background:#ff5f56"></div><div class="term-dot" style="background:#ffbd2e"></div><div class="term-dot" style="background:#27c93f"></div><span class="term-label">cmd.exe — Administrator</span></div><div class="term-body"><div><span class="t-p">C:\></span> <span class="t-c">sc failure postgresql-x64-18 reset= 86400 actions= restart/5000/restart/10000/restart/30000</span></div><div><span class="t-cm"># Restarts after 5s, 10s, 30s on consecutive failures</span></div></div></div>
<p>Or configure visually: services.msc → double-click the service → <strong>Recovery</strong> tab → set all failure actions to <strong>Restart the Service</strong>.</p>
</div>
<div class="section" aria-labelledby="logs-h2"><span class="section-label">Log files</span><h2 id="logs-h2">Find PostgreSQL logs on Windows</h2>
<div class="term"><div class="term-bar"><div class="term-dot" style="background:#ff5f56"></div><div class="term-dot" style="background:#ffbd2e"></div><div class="term-dot" style="background:#27c93f"></div><span class="term-label">cmd.exe</span></div><div class="term-body"><div><span class="t-cm"># Default log directory:</span></div><div><span class="t-v">C:\Program Files\PostgreSQL\18\data\log\</span></div><div></div><div><span class="t-cm"># Open in Explorer:</span></div><div><span class="t-p">C:\></span> <span class="t-c">explorer "C:\Program Files\PostgreSQL\18\data\log"</span></div><div></div><div><span class="t-cm"># Tail latest log (PowerShell):</span></div><div><span class="t-p">PS></span> <span class="t-c">Get-Content "C:\Program Files\PostgreSQL\18\data\log\postgresql*.log" -Tail 50</span></div></div></div>
</div>
<div class="section" aria-labelledby="faq-h2"><span class="section-label">FAQ</span><h2 id="faq-h2">Windows service questions</h2><div class="faq">
<div class="faq-item"><details><summary>PostgreSQL service not starting</summary><div class="faq-ans">Check Windows Event Viewer (eventvwr.msc) under Windows Logs → Application. Also check PostgreSQL log files in the data/log folder. Common causes: port 5432 already in use, data directory permissions, or corrupted cluster. See <a href="/postgresql-not-starting-windows.html">Service not starting guide</a>.</div></details></div>
<div class="faq-item"><details><summary>What account does the service run under?</summary><div class="faq-ans">By default the EDB installer uses the built-in NetworkService account. For production you may want a dedicated low-privilege service account with access only to the data directory.</div></details></div>
<div class="faq-item"><details><summary>How do I find the data directory path?</summary><div class="faq-ans">Run: <code>psql -U postgres -c "SHOW data_directory;"</code>. Or check the service binary path in services.msc — it will include <code>-D path o\data</code>.</div></details></div>
</div></div>
<div class="cta-banner"><div><h2>Service not starting?</h2><p>Full troubleshooting guide for PostgreSQL startup failures on Windows.</p></div><a href="/postgresql-not-starting-windows.html" class="btn-white"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/></svg>Fix startup failures</a></div>
<div style="margin-bottom:32px"><span class="section-label">Related guides</span><div class="rel-grid"><a href="/postgresql-not-starting-windows.html" class="rel-card"><div class="rel-title">Service not starting →</div><div class="rel-sub">fix startup errors</div></a><a href="/postgresql-port-5432.html" class="rel-card"><div class="rel-title">Port 5432 →</div><div class="rel-sub">port conflicts</div></a><a href="/postgresql-config-windows.html" class="rel-card"><div class="rel-title">postgresql.conf →</div><div class="rel-sub">server config</div></a></div></div></main>
<aside class="content-sidebar"><div class="sb-card"><div class="version-badge-label">Latest stable</div><div class="version-badge-val">18.3</div><div class="version-badge-sub">Released May 2026</div></div><div class="sb-card"><div class="sb-card-title">Install & setup</div><ul class="sb-links"><li><a href="/download-windows.html">Download PostgreSQL</a></li><li><a href="/offline-installer.html">Offline installer</a></li><li><a href="/configure-windows-service.html" class="cur">Windows service</a></li><li><a href="/fix-path-issues.html">Fix PATH / psql</a></li><li><a href="/pgadmin-windows.html">pgAdmin 4</a></li><li><a href="/install-postgresql-windows-server.html">Windows Server</a></li></ul></div><div class="sb-card"><div class="sb-card-title">Configuration</div><ul class="sb-links"><li><a href="/postgresql-config-windows.html">postgresql.conf</a></li><li><a href="/postgresql-port-5432.html">Port 5432</a></li><li><a href="/postgresql-allow-remote-connections.html">Remote connections</a></li><li><a href="/postgresql-password-windows.html">Reset password</a></li></ul></div><div class="sb-card"><div class="sb-card-title">Tools & help</div><ul class="sb-links"><li><a href="/psql-commands-windows.html">psql commands</a></li><li><a href="/pg-dump-restore-windows.html">Backup & restore</a></li><li><a href="/postgresql-python-windows.html">Python / psycopg2</a></li><li><a href="/odbc-driver-x64-x86.html">ODBC driver</a></li><li><a href="/postgresql-not-starting-windows.html">Service not starting</a></li><li><a href="/postgresql-uninstall-windows.html">Uninstall</a></li><li><a href="/postgresql-windows-faq.html">FAQ</a></li></ul></div></aside>
</div></div>
<footer class="site-footer"><div class="wrap">
<div class="footer-inner">
<div>
<div class="footer-logo"><div class="footer-logo-mark">Pg</div><span class="footer-logo-name">PostgreSQL for Windows</span></div>
<p class="footer-tagline">Unofficial Windows guide for PostgreSQL — download, install, configure, troubleshoot.</p>
</div>
<div>
<div class="footer-col-title">Install & setup</div>
<ul class="footer-links">
<li><a href="/download-windows.html">Download PostgreSQL</a></li>
<li><a href="/offline-installer.html">Offline installer</a></li>
<li><a href="/configure-windows-service.html">Windows service</a></li>
<li><a href="/fix-path-issues.html">Fix PATH / psql</a></li>
<li><a href="/pgadmin-windows.html">pgAdmin 4</a></li>
</ul>
</div>
<div>
<div class="footer-col-title">Configuration</div>
<ul class="footer-links">
<li><a href="/postgresql-config-windows.html">postgresql.conf</a></li>
<li><a href="/postgresql-port-5432.html">Port 5432</a></li>
<li><a href="/postgresql-allow-remote-connections.html">Remote connections</a></li>
<li><a href="/postgresql-password-windows.html">Reset password</a></li>
<li><a href="/install-postgresql-windows-server.html">Windows Server</a></li>
</ul>
</div>
<div>
<div class="footer-col-title">Tools & help</div>
<ul class="footer-links">
<li><a href="/psql-commands-windows.html">psql commands</a></li>
<li><a href="/pg-dump-restore-windows.html">Backup & restore</a></li>
<li><a href="/postgresql-not-starting-windows.html">Service not starting</a></li>
<li><a href="/postgresql-uninstall-windows.html">Uninstall</a></li>
<li><a href="/postgresql-windows-faq.html">FAQ</a></li>
</ul>
</div>
</div>
<div class="footer-bottom">
<p>Not affiliated with the PostgreSQL Global Development Group. Unofficial community guide.</p>
<p><strong>Affiliate disclosure:</strong> Download links may be partner links.</p>
</div>
</div></footer>
<div class="cookie-bar" id="cookieBar" style="display:none">
<p>We use Google Analytics for anonymous traffic data. <a href="/privacy.html">Privacy policy</a></p>
<div class="cookie-btns"><button class="cookie-accept" id="cookieAccept">Accept</button><button class="cookie-decline" id="cookieDecline">Decline</button></div>
</div>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-MHLW57MR8Q"></script>
<script>
window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)}
gtag('consent','default',{analytics_storage:'denied',ad_storage:'denied'});
gtag('js',new Date());gtag('config','G-MHLW57MR8Q',{anonymize_ip:true,send_page_view:false});
function grantGA(){gtag('consent','update',{analytics_storage:'granted'});gtag('event','page_view',{page_location:location.href,page_title:document.title})}
document.addEventListener('DOMContentLoaded',function(){
var bar=document.getElementById('cookieBar');
var c=localStorage.getItem('pg_consent');
if(!c){bar.style.display='flex'}else if(c==='1'){grantGA()}
document.getElementById('cookieAccept').addEventListener('click',function(){localStorage.setItem('pg_consent','1');grantGA();bar.style.display='none'});
document.getElementById('cookieDecline').addEventListener('click',function(){localStorage.setItem('pg_consent','0');bar.style.display='none'});
});
</script>
<script type="application/ld+json">{"@context":"https://schema.org","@type":"HowTo","name":"Configure PostgreSQL Windows Service","description":"Manage the PostgreSQL Windows service: start, stop, startup type and recovery.","step":[{"@type":"HowToStep","position":1,"name":"Check status","text":"sc query postgresql-x64-18"},{"@type":"HowToStep","position":2,"name":"Start","text":"net start postgresql-x64-18"},{"@type":"HowToStep","position":3,"name":"Auto startup","text":"sc config postgresql-x64-18 start= auto"}]}</script>
<script>var el=document.getElementById("nl-svc");if(el)el.classList.add("active");</script>
</body></html>