{"id":510,"date":"2025-04-04T18:06:04","date_gmt":"2025-04-04T10:06:04","guid":{"rendered":"https:\/\/cococat.top\/?p=510"},"modified":"2025-06-07T14:48:07","modified_gmt":"2025-06-07T06:48:07","slug":"systemd","status":"publish","type":"post","link":"https:\/\/cococat.top\/index.php\/2025\/04\/04\/systemd\/","title":{"rendered":"systemd"},"content":{"rendered":"<h1>1. .service \u6587\u4ef6<\/h1>\n<p>\u4e3b\u8981\u5206\u4e3a\u4e09\u4e2a\u90e8\u5206<\/p>\n<ul>\n<li><code>[Unit]<\/code> \u670d\u52a1\u7684\u5143\u4fe1\u606f\uff08\u63cf\u8ff0\u3001\u4f9d\u8d56\u5173\u7cfb\u7b49\uff09\u3002<\/li>\n<li><code>[Service]<\/code> \u670d\u52a1\u7684\u8fd0\u884c\u53c2\u6570\u4e0e\u751f\u547d\u5468\u671f<\/li>\n<li><code>[Install]<\/code> \u670d\u52a1\u7684\u5b89\u88c5\u76ee\u6807\uff08\u8bf4\u4eba\u8bdd\uff1a\u5728\u4ec0\u4e48\u60c5\u51b5\u4e0b\u542f\u52a8\uff0c\u547d\u4ee4\u884c or GUI\uff09<\/li>\n<\/ul>\n<h2>1.1. \u6848\u4f8b<\/h2>\n<pre><code>[Unit]\nDescription=frp auto start\nAfter=network.target\n\n[Service]\nType=simple\n#User=cococat # \u5bf9\u4e8e\u7cfb\u7edf\u7ea7\u670d\u52a1\uff0c\u8c28\u614e\u6307\u5b9a User \uff01\nWorkingDirectory=\/home\/cococat\/Software\/frp_0.51.2_linux_amd64\nExecStart=\/home\/cococat\/Software\/frp_0.51.2_linux_amd64\/frpc -c .\/frpc.ini\nRestart=always\nRestartSec=5\n# StandardOutput=append:\/home\/cococat\/Software\/frp_1.51.2_linux_amd64\/nohup.out\n# StandardError=append:\/home\/cococat\/Software\/frp_1.51.2_linux_amd64\/nohup.out\n\n[Install]\nWantedBy=multi-user.target<\/code><\/pre>\n<h3>1.1.1. <code>Unit<\/code> \u5e38\u7528\u914d\u7f6e\u9879<\/h3>\n<ul>\n<li><code>Description<\/code>\uff1a\u7565<\/li>\n<li><code>After<\/code>: \u7f16\u6392\u670d\u52a1\u7684\u542f\u52a8\u987a\u5e8f\u3002\u4f8b\u5982\uff1a\n<ul>\n<li><code>network.target<\/code> : \u7cfb\u7edf\u7f51\u7edc\u670d\u52a1\u542f\u52a8\u5b8c\u6210\u540e\uff0c\u518d\u542f\u52a8\u672c\u670d\u52a1<\/li>\n<li><code>postgresql.service<\/code>\uff1apg \u670d\u52a1\u542f\u52a8\u5b8c\u6210<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>1.1.2. <code>Service<\/code> \u5e38\u7528\u914d\u7f6e\u9879<\/h3>\n<ul>\n<li><code>Type<\/code>: \u670d\u52a1\u7c7b\u578b\uff0c\u4f8b\u5982\uff1a\n<ul>\n<li><code>simple<\/code>: \u9002\u7528\u4e8e\u4fdd\u6301\u524d\u53f0\u8fd0\u884c\u7684\u8fdb\u7a0b\uff0c\u6700\u5e38\u7528<\/li>\n<li><code>one-shot<\/code>: \u9002\u7528\u4e8e\u6267\u884c\u4e00\u6b21\u540e\u9000\u51fa\uff0c\u4f8b\u5982\u811a\u672c<\/li>\n<\/ul>\n<\/li>\n<li><code>User<\/code>: \u6307\u5b9a\u8fd0\u884c\u670d\u52a1\u7684\u7528\u6237<\/li>\n<li><code>WorkingDirectory<\/code>: \u8fdb\u7a0b\u7684\u8fd0\u884c\u76ee\u5f55<\/li>\n<li><code>EnvironmentFile<\/code>: \u52a0\u8f7d\u5916\u90e8\u73af\u5883\u53d8\u91cf<\/li>\n<li><code>ExecStart<\/code>: \u670d\u52a1\u8fdb\u7a0b\u7684<strong>\u7edd\u5bf9\u8def\u5f84<\/strong> \u548c\u8fd0\u884c\u53c2\u6570<\/li>\n<li><code>Restart<\/code>: \u670d\u52a1\u7684\u91cd\u542f\u7b56\u7565\uff0c\u4f8b\u5982\uff1a\n<ul>\n<li><code>no<\/code>: \u4e0d\u91cd\u542f<\/li>\n<li><code>always<\/code>: \u4efb\u4f55\u60c5\u51b5\u4e0b\u9000\u51fa\u90fd\u91cd\u542f<\/li>\n<li><code>on-failure<\/code>: \u4ec5\u5728\u975e\u6b63\u5e38\u9000\u51fa\uff08\u5982\u9519\u8bef\u7801\u3001\u4fe1\u53f7\u7ec8\u6b62\uff09\u65f6\u91cd\u542f<\/li>\n<\/ul>\n<\/li>\n<li><code>RestartSec<\/code>: \u91cd\u542f\u524d\u7b49\u5f85\u65f6\u95f4\uff0c\u907f\u514d\u9891\u7e41\u91cd\u542f<\/li>\n<\/ul>\n<h3>1.1.3. <code>Install<\/code> \u5e38\u7528\u914d\u7f6e\u9879<\/h3>\n<ul>\n<li><code>WantedBy<\/code>: \u670d\u52a1\u5728\u4ec0\u4e48\u60c5\u51b5\u4e0b\u542f\u52a8\uff0c\u4f8b\u5982\uff1a\n<ul>\n<li><code>multi-user.target<\/code>: \u591a\u7528\u6237\u547d\u4ee4\u884c\u6a21\u5f0f\uff08\u65e0 GUI\uff09<\/li>\n<li><code>graphical.target<\/code>\uff1aGUI \u6a21\u5f0f<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>1.2. \u5751<\/h2>\n<ul>\n<li><code>ExecStart<\/code> \u4e2d\u7684\u53ef\u6267\u884c\u6587\u4ef6\u5fc5\u987b\u662f\u7edd\u5bf9\u8def\u5f84\u3002\u5373\u4f7f\u901a\u8fc7 <code>WorkingDirectory<\/code> \u6307\u5b9a\u4e86\u8fd0\u884c\u76ee\u5f55\uff0c\u4e5f\u4e0d\u53ef\u4ee5\u662f <code>.\/xx<\/code>\u3001<code>xx<\/code> \u7b49\u3002\u800c\u5176\u4ed6\u8fd0\u884c\u7684\u53c2\u6570\u662f\u53ef\u4ee5\u7684\u7528 <code>.\/<\/code> \u7684\u3002<\/li>\n<li>\u5982\u679c\u662f\u4e00\u4e2a\u7cfb\u7edf\u7ea7\u7684 service\uff0c\u5373\u653e\u5728 <code>\/etc\/systemd\/system<\/code> \u4e0b\u7684\u670d\u52a1\uff0c\u8bf7\u8c28\u614e\u6307\u5b9a <code>User<\/code> \uff0c\u5982\u679c\u4e0d\u662f\u5fc5\u987b\u8981\u4ee5\u7528\u6237\u8fd0\u884c\u7684\u8fdb\u7a0b\uff0c\u6700\u597d\u90fd\u522b\u5236\u5b9a\u3002\u5982\u679c\u4f60\u53d1\u73b0\u4f60\u7684\u670d\u52a1\u65e0\u4efb\u4f55\u8f93\u51fa\u7684\u95ea\u9000\uff0c\u628a User \u53bb\u6389\uff0c\u53ef\u80fd\u5c31\u597d\u4e86<\/li>\n<li>\u4e0d\u53ef\u4ee5\u5728 <code>ExecStart<\/code> \u4e2d\u4f7f\u7528 <code>&gt;<\/code> \u5c06 stdout \u8f93\u51fa\u91cd\u5b9a\u5411\u5230\u6587\u4ef6\u4e2d\u3002\u5982\u679c\u8981\u8fd9\u4e48\u505a\uff0c\u8bf7\u4f7f\u7528 <code>StandardOutput<\/code> \u6216\u8005 <code>StandardError<\/code>\u3002 &gt; <code>ExecStart<\/code> \u7684\u53c2\u6570\u4f1a\u88ab\u76f4\u63a5\u89e3\u6790\u4e3a\u547d\u4ee4\u548c\u53c2\u6570\uff0c\u4e0d\u4f1a\u7ecf\u8fc7 Shell \u89e3\u91ca\u3002\u91cd\u5b9a\u5411\u7b26\u53f7\uff08\u5982 <code>&gt;<\/code>\u3001<code>&gt;&gt;<\/code>\u3001<code>|<\/code>\uff09\u4f1a\u88ab\u89c6\u4e3a\u666e\u901a\u5b57\u7b26\uff0c\u5bfc\u81f4\u547d\u4ee4\u6267\u884c\u5931\u8d25\u3002<\/li>\n<\/ul>\n<h1>2. \u4f4d\u7f6e<\/h1>\n<table>\n<thead>\n<tr>\n<th><strong>\u76ee\u5f55<\/strong><\/th>\n<th><strong>\u4f5c\u7528\u57df<\/strong><\/th>\n<th><strong>\u6743\u9650<\/strong><\/th>\n<th><strong>\u9002\u7528\u573a\u666f<\/strong><\/th>\n<th><strong>\u7ba1\u7406\u547d\u4ee4<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>\/etc\/systemd\/system<\/code><\/td>\n<td>\u7cfb\u7edf\u7ea7\uff08\u5168\u5c40\uff09<\/td>\n<td>\u901a\u5e38\u4ee5\u00a0<code>root<\/code>\u00a0\u8fd0\u884c<\/td>\n<td>\u7cfb\u7edf\u5173\u952e\u670d\u52a1\uff08\u5982 Web \u670d\u52a1\u5668\u3001\u6570\u636e\u5e93\uff09<\/td>\n<td><code>sudo systemctl ...<\/code><\/td>\n<\/tr>\n<tr>\n<td><code>\/etc\/systemd\/user<\/code><\/td>\n<td>\u7528\u6237\u7ea7\uff08\u4f1a\u8bdd\uff09<\/td>\n<td>\u4ee5\u5f53\u524d\u7528\u6237\u6743\u9650\u8fd0\u884c<\/td>\n<td>\u7528\u6237\u4e13\u5c5e\u670d\u52a1\uff08\u5982\u5f00\u53d1\u5de5\u5177\u3001\u4e2a\u4eba\u811a\u672c\uff09<\/td>\n<td><code>systemctl --user ...<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u4e00\u822c\u6765\u8bf4\uff0c\u5f00\u673a\u81ea\u542f\u7684\u547d\u4ee4\u90fd\u653e\u5728 <code>\/etc\/systemd\/system<\/code> \u3002<\/p>\n<h1>3. \u547d\u4ee4<\/h1>\n<pre><code class=\"language-bash\"># \u9a8c\u8bc1 service \u8bed\u6cd5\nsudo systemd-analyze verify \/etc\/systemd\/system\/my_service.service\n\nsudo systemctl daemon-reload\nsudo systemctl enable my_service\nsudo systemctl start my_service<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>1. .service \u6587\u4ef6 \u4e3b\u8981\u5206\u4e3a\u4e09\u4e2a\u90e8\u5206 [Unit] \u670d\u52a1\u7684\u5143\u4fe1\u606f\uff08\u63cf\u8ff0\u3001\u4f9d\u8d56\u5173\u7cfb\u7b49\uff09\u3002 [Servi [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[20],"class_list":["post-510","post","type-post","status-publish","format-standard","hentry","category-linux","tag-linux"],"_links":{"self":[{"href":"https:\/\/cococat.top\/index.php\/wp-json\/wp\/v2\/posts\/510","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cococat.top\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cococat.top\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cococat.top\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cococat.top\/index.php\/wp-json\/wp\/v2\/comments?post=510"}],"version-history":[{"count":2,"href":"https:\/\/cococat.top\/index.php\/wp-json\/wp\/v2\/posts\/510\/revisions"}],"predecessor-version":[{"id":546,"href":"https:\/\/cococat.top\/index.php\/wp-json\/wp\/v2\/posts\/510\/revisions\/546"}],"wp:attachment":[{"href":"https:\/\/cococat.top\/index.php\/wp-json\/wp\/v2\/media?parent=510"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cococat.top\/index.php\/wp-json\/wp\/v2\/categories?post=510"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cococat.top\/index.php\/wp-json\/wp\/v2\/tags?post=510"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}