{"id":1209,"date":"2019-04-23T11:11:54","date_gmt":"2019-04-23T03:11:54","guid":{"rendered":"https:\/\/blog.jsjs.org\/?p=1209"},"modified":"2019-04-23T11:11:54","modified_gmt":"2019-04-23T03:11:54","slug":"systemd-%e5%85%a5%e9%97%a8%e6%95%99%e7%a8%8b%ef%bc%9a%e5%ae%9e%e6%88%98%e7%af%87","status":"publish","type":"post","link":"https:\/\/blog.jsjs.org\/?p=1209","title":{"rendered":"Systemd \u5165\u95e8\u6559\u7a0b\uff1a\u5b9e\u6218\u7bc7"},"content":{"rendered":"<p>\u4e0a\u4e00\u7bc7\u6587\u7ae0\uff0c\u6211\u4ecb\u7ecd\u4e86 Systemd \u7684<a href=\"http:\/\/www.ruanyifeng.com\/blog\/2016\/03\/systemd-tutorial-commands.html\" target=\"_blank\" rel=\"noopener noreferrer\">\u4e3b\u8981\u547d\u4ee4<\/a>\uff0c\u4eca\u5929\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528\u5b83\u5b8c\u6210\u4e00\u4e9b\u57fa\u672c\u7684\u4efb\u52a1\u3002<\/p>\n<p><img decoding=\"async\" title=\"\" src=\"http:\/\/www.ruanyifeng.com\/blogimg\/asset\/2016\/bg2016030801.jpg\" alt=\"\" \/><\/p>\n<h2>\u4e00\u3001\u5f00\u673a\u542f\u52a8<\/h2>\n<p>\u5bf9\u4e8e\u90a3\u4e9b\u652f\u6301 Systemd \u7684\u8f6f\u4ef6\uff0c\u5b89\u88c5\u7684\u65f6\u5019\uff0c\u4f1a\u81ea\u52a8\u5728<code>\/usr\/lib\/systemd\/system<\/code>\u76ee\u5f55\u6dfb\u52a0\u4e00\u4e2a\u914d\u7f6e\u6587\u4ef6\u3002<\/p>\n<p>\u5982\u679c\u4f60\u60f3\u8ba9\u8be5\u8f6f\u4ef6\u5f00\u673a\u542f\u52a8\uff0c\u5c31\u6267\u884c\u4e0b\u9762\u7684\u547d\u4ee4\uff08\u4ee5<code>httpd.service<\/code>\u4e3a\u4f8b\uff09\u3002<\/p>\n<blockquote>\n<pre class=\" language-bash\"><code class=\" language-bash\">\n$ sudo systemctl enable httpd\n<\/code><\/pre>\n<\/blockquote>\n<p>\u4e0a\u9762\u7684\u547d\u4ee4\u76f8\u5f53\u4e8e\u5728<code>\/etc\/systemd\/system<\/code>\u76ee\u5f55\u6dfb\u52a0\u4e00\u4e2a\u7b26\u53f7\u94fe\u63a5\uff0c\u6307\u5411<code>\/usr\/lib\/systemd\/system<\/code>\u91cc\u9762\u7684<code>httpd.service<\/code>\u6587\u4ef6\u3002<\/p>\n<p>\u8fd9\u662f\u56e0\u4e3a\u5f00\u673a\u65f6\uff0c<code>Systemd<\/code>\u53ea\u6267\u884c<code>\/etc\/systemd\/system<\/code>\u76ee\u5f55\u91cc\u9762\u7684\u914d\u7f6e\u6587\u4ef6\u3002\u8fd9\u4e5f\u610f\u5473\u7740\uff0c\u5982\u679c\u628a\u4fee\u6539\u540e\u7684\u914d\u7f6e\u6587\u4ef6\u653e\u5728\u8be5\u76ee\u5f55\uff0c\u5c31\u53ef\u4ee5\u8fbe\u5230\u8986\u76d6\u539f\u59cb\u914d\u7f6e\u7684\u6548\u679c\u3002<\/p>\n<h2>\u4e8c\u3001\u542f\u52a8\u670d\u52a1<\/h2>\n<p>\u8bbe\u7f6e\u5f00\u673a\u542f\u52a8\u4ee5\u540e\uff0c\u8f6f\u4ef6\u5e76\u4e0d\u4f1a\u7acb\u5373\u542f\u52a8\uff0c\u5fc5\u987b\u7b49\u5230\u4e0b\u4e00\u6b21\u5f00\u673a\u3002\u5982\u679c\u60f3\u73b0\u5728\u5c31\u8fd0\u884c\u8be5\u8f6f\u4ef6\uff0c\u90a3\u4e48\u8981\u6267\u884c<code>systemctl start<\/code>\u547d\u4ee4\u3002<\/p>\n<blockquote>\n<pre class=\" language-bash\"><code class=\" language-bash\">\n$ sudo systemctl start httpd\n<\/code><\/pre>\n<\/blockquote>\n<p>\u6267\u884c\u4e0a\u9762\u7684\u547d\u4ee4\u4ee5\u540e\uff0c\u6709\u53ef\u80fd\u542f\u52a8\u5931\u8d25\uff0c\u56e0\u6b64\u8981\u7528<code>systemctl status<\/code>\u547d\u4ee4\u67e5\u770b\u4e00\u4e0b\u8be5\u670d\u52a1\u7684\u72b6\u6001\u3002<\/p>\n<blockquote>\n<pre class=\" language-bash\"><code class=\" language-bash\">\n$ sudo systemctl status httpd\n\nhttpd<span class=\"token punctuation\">.<\/span>service <span class=\"token operator\">-<\/span> The Apache HTTP Server\n   Loaded<span class=\"token punctuation\">:<\/span> loaded <span class=\"token punctuation\">(<\/span><span class=\"token operator\">\/<\/span>usr<span class=\"token operator\">\/<\/span>lib<span class=\"token operator\">\/<\/span>systemd<span class=\"token operator\">\/<\/span>system<span class=\"token operator\">\/<\/span>httpd<span class=\"token punctuation\">.<\/span>service<span class=\"token punctuation\">;<\/span> enabled<span class=\"token punctuation\">)<\/span>\n   Active<span class=\"token punctuation\">:<\/span> active <span class=\"token punctuation\">(<\/span>running<span class=\"token punctuation\">)<\/span> since \u91d1 <span class=\"token number\">2014<\/span><span class=\"token operator\">-<\/span><span class=\"token number\">12<\/span><span class=\"token operator\">-<\/span><span class=\"token number\">05<\/span> <span class=\"token number\">12<\/span><span class=\"token punctuation\">:<\/span><span class=\"token number\">18<\/span><span class=\"token punctuation\">:<\/span><span class=\"token number\">22<\/span> JST<span class=\"token punctuation\">;<\/span> 7min ago\n Main PID<span class=\"token punctuation\">:<\/span> <span class=\"token number\">4349<\/span> <span class=\"token punctuation\">(<\/span>httpd<span class=\"token punctuation\">)<\/span>\n   Status<span class=\"token punctuation\">:<\/span> <span class=\"token string\">\"Total requests: 1; Current requests\/sec: 0; Current traffic:   0 B\/sec\"<\/span>\n   CGroup<span class=\"token punctuation\">:<\/span> <span class=\"token operator\">\/<\/span>system<span class=\"token punctuation\">.<\/span>slice<span class=\"token operator\">\/<\/span>httpd<span class=\"token punctuation\">.<\/span>service\n           \u251c\u2500<span class=\"token number\">4349<\/span> <span class=\"token operator\">\/<\/span>usr<span class=\"token operator\">\/<\/span>sbin<span class=\"token operator\">\/<\/span>httpd <span class=\"token operator\">-<\/span>DFOREGROUND\n           \u251c\u2500<span class=\"token number\">4350<\/span> <span class=\"token operator\">\/<\/span>usr<span class=\"token operator\">\/<\/span>sbin<span class=\"token operator\">\/<\/span>httpd <span class=\"token operator\">-<\/span>DFOREGROUND\n           \u251c\u2500<span class=\"token number\">4351<\/span> <span class=\"token operator\">\/<\/span>usr<span class=\"token operator\">\/<\/span>sbin<span class=\"token operator\">\/<\/span>httpd <span class=\"token operator\">-<\/span>DFOREGROUND\n           \u251c\u2500<span class=\"token number\">4352<\/span> <span class=\"token operator\">\/<\/span>usr<span class=\"token operator\">\/<\/span>sbin<span class=\"token operator\">\/<\/span>httpd <span class=\"token operator\">-<\/span>DFOREGROUND\n           \u251c\u2500<span class=\"token number\">4353<\/span> <span class=\"token operator\">\/<\/span>usr<span class=\"token operator\">\/<\/span>sbin<span class=\"token operator\">\/<\/span>httpd <span class=\"token operator\">-<\/span>DFOREGROUND\n           \u2514\u2500<span class=\"token number\">4354<\/span> <span class=\"token operator\">\/<\/span>usr<span class=\"token operator\">\/<\/span>sbin<span class=\"token operator\">\/<\/span>httpd <span class=\"token operator\">-<\/span>DFOREGROUND\n\n<span class=\"token number\">12<\/span>\u6708 <span class=\"token number\">05<\/span> <span class=\"token number\">12<\/span><span class=\"token punctuation\">:<\/span><span class=\"token number\">18<\/span><span class=\"token punctuation\">:<\/span><span class=\"token number\">22<\/span> localhost<span class=\"token punctuation\">.<\/span>localdomain systemd<span class=\"token punctuation\">[<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">:<\/span> Starting The Apache HTTP Server<span class=\"token punctuation\">.<\/span><span class=\"token punctuation\">.<\/span><span class=\"token punctuation\">.<\/span>\n<span class=\"token number\">12<\/span>\u6708 <span class=\"token number\">05<\/span> <span class=\"token number\">12<\/span><span class=\"token punctuation\">:<\/span><span class=\"token number\">18<\/span><span class=\"token punctuation\">:<\/span><span class=\"token number\">22<\/span> localhost<span class=\"token punctuation\">.<\/span>localdomain systemd<span class=\"token punctuation\">[<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">:<\/span> Started The Apache HTTP Server<span class=\"token punctuation\">.<\/span>\n<span class=\"token number\">12<\/span>\u6708 <span class=\"token number\">05<\/span> <span class=\"token number\">12<\/span><span class=\"token punctuation\">:<\/span><span class=\"token number\">22<\/span><span class=\"token punctuation\">:<\/span><span class=\"token number\">40<\/span> localhost<span class=\"token punctuation\">.<\/span>localdomain systemd<span class=\"token punctuation\">[<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">:<\/span> Started The Apache HTTP Server<span class=\"token punctuation\">.<\/span>\n<\/code><\/pre>\n<\/blockquote>\n<p>\u4e0a\u9762\u7684\u8f93\u51fa\u7ed3\u679c\u542b\u4e49\u5982\u4e0b\u3002<\/p>\n<blockquote>\n<ul>\n<li><code>Loaded<\/code>\u884c\uff1a\u914d\u7f6e\u6587\u4ef6\u7684\u4f4d\u7f6e\uff0c\u662f\u5426\u8bbe\u4e3a\u5f00\u673a\u542f\u52a8<\/li>\n<li><code>Active<\/code>\u884c\uff1a\u8868\u793a\u6b63\u5728\u8fd0\u884c<\/li>\n<li><code>Main PID<\/code>\u884c\uff1a\u4e3b\u8fdb\u7a0bID<\/li>\n<li><code>Status<\/code>\u884c\uff1a\u7531\u5e94\u7528\u672c\u8eab\uff08\u8fd9\u91cc\u662f httpd \uff09\u63d0\u4f9b\u7684\u8f6f\u4ef6\u5f53\u524d\u72b6\u6001<\/li>\n<li><code>CGroup<\/code>\u5757\uff1a\u5e94\u7528\u7684\u6240\u6709\u5b50\u8fdb\u7a0b<\/li>\n<li>\u65e5\u5fd7\u5757\uff1a\u5e94\u7528\u7684\u65e5\u5fd7<\/li>\n<\/ul>\n<\/blockquote>\n<h2>\u4e09\u3001\u505c\u6b62\u670d\u52a1<\/h2>\n<p>\u7ec8\u6b62\u6b63\u5728\u8fd0\u884c\u7684\u670d\u52a1\uff0c\u9700\u8981\u6267\u884c<code>systemctl stop<\/code>\u547d\u4ee4\u3002<\/p>\n<blockquote>\n<pre class=\" language-bash\"><code class=\" language-bash\">\n$ sudo systemctl stop httpd<span class=\"token punctuation\">.<\/span>service\n<\/code><\/pre>\n<\/blockquote>\n<p>\u6709\u65f6\u5019\uff0c\u8be5\u547d\u4ee4\u53ef\u80fd\u6ca1\u6709\u54cd\u5e94\uff0c\u670d\u52a1\u505c\u4e0d\u4e0b\u6765\u3002\u8fd9\u65f6\u5019\u5c31\u4e0d\u5f97\u4e0d&#8221;\u6740\u8fdb\u7a0b&#8221;\u4e86\uff0c\u5411\u6b63\u5728\u8fd0\u884c\u7684\u8fdb\u7a0b\u53d1\u51fa<code>kill<\/code>\u4fe1\u53f7\u3002<\/p>\n<blockquote>\n<pre class=\" language-bash\"><code class=\" language-bash\">\n$ sudo systemctl kill httpd<span class=\"token punctuation\">.<\/span>service\n<\/code><\/pre>\n<\/blockquote>\n<p>\u6b64\u5916\uff0c\u91cd\u542f\u670d\u52a1\u8981\u6267\u884c<code>systemctl restart<\/code>\u547d\u4ee4\u3002<\/p>\n<blockquote>\n<pre class=\" language-bash\"><code class=\" language-bash\">\n$ sudo systemctl restart httpd<span class=\"token punctuation\">.<\/span>service\n<\/code><\/pre>\n<\/blockquote>\n<h2>\u56db\u3001\u8bfb\u61c2\u914d\u7f6e\u6587\u4ef6<\/h2>\n<p>\u4e00\u4e2a\u670d\u52a1\u600e\u4e48\u542f\u52a8\uff0c\u5b8c\u5168\u7531\u5b83\u7684\u914d\u7f6e\u6587\u4ef6\u51b3\u5b9a\u3002\u4e0b\u9762\u5c31\u6765\u770b\uff0c\u914d\u7f6e\u6587\u4ef6\u6709\u4e9b\u4ec0\u4e48\u5185\u5bb9\u3002<\/p>\n<p>\u524d\u9762\u8bf4\u8fc7\uff0c\u914d\u7f6e\u6587\u4ef6\u4e3b\u8981\u653e\u5728<code>\/usr\/lib\/systemd\/system<\/code>\u76ee\u5f55\uff0c\u4e5f\u53ef\u80fd\u5728<code>\/etc\/systemd\/system<\/code>\u76ee\u5f55\u3002\u627e\u5230\u914d\u7f6e\u6587\u4ef6\u4ee5\u540e\uff0c\u4f7f\u7528\u6587\u672c\u7f16\u8f91\u5668\u6253\u5f00\u5373\u53ef\u3002<\/p>\n<p><code>systemctl cat<\/code>\u547d\u4ee4\u53ef\u4ee5\u7528\u6765\u67e5\u770b\u914d\u7f6e\u6587\u4ef6\uff0c\u4e0b\u9762\u4ee5<code>sshd.service<\/code>\u6587\u4ef6\u4e3a\u4f8b\uff0c\u5b83\u7684\u4f5c\u7528\u662f\u542f\u52a8\u4e00\u4e2a SSH \u670d\u52a1\u5668\uff0c\u4f9b\u5176\u4ed6\u7528\u6237\u4ee5 SSH \u65b9\u5f0f\u767b\u5f55\u3002<\/p>\n<blockquote>\n<pre class=\" language-bash\"><code class=\" language-bash\">\n$ systemctl cat sshd<span class=\"token punctuation\">.<\/span>service\n\n<span class=\"token punctuation\">[<\/span>Unit<span class=\"token punctuation\">]<\/span>\nDescription<span class=\"token operator\">=<\/span>OpenSSH server daemon\nDocumentation<span class=\"token operator\">=<\/span>man<span class=\"token punctuation\">:<\/span><span class=\"token function\">sshd<span class=\"token punctuation\">(<\/span><\/span><span class=\"token number\">8<\/span><span class=\"token punctuation\">)<\/span> man<span class=\"token punctuation\">:<\/span><span class=\"token function\">sshd_config<span class=\"token punctuation\">(<\/span><\/span><span class=\"token number\">5<\/span><span class=\"token punctuation\">)<\/span>\nAfter<span class=\"token operator\">=<\/span>network<span class=\"token punctuation\">.<\/span>target sshd<span class=\"token operator\">-<\/span>keygen<span class=\"token punctuation\">.<\/span>service\nWants<span class=\"token operator\">=<\/span>sshd<span class=\"token operator\">-<\/span>keygen<span class=\"token punctuation\">.<\/span>service\n\n<span class=\"token punctuation\">[<\/span>Service<span class=\"token punctuation\">]<\/span>\nEnvironmentFile<span class=\"token operator\">=<\/span><span class=\"token operator\">\/<\/span>etc<span class=\"token operator\">\/<\/span>sysconfig<span class=\"token operator\">\/<\/span>sshd\nExecStart<span class=\"token operator\">=<\/span><span class=\"token operator\">\/<\/span>usr<span class=\"token operator\">\/<\/span>sbin<span class=\"token operator\">\/<\/span>sshd <span class=\"token operator\">-<\/span>D <span class=\"token property\">$OPTIONS<\/span>\nExecReload<span class=\"token operator\">=<\/span><span class=\"token operator\">\/<\/span>bin<span class=\"token operator\">\/<\/span>kill <span class=\"token operator\">-<\/span>HUP <span class=\"token property\">$MAINPID<\/span>\nType<span class=\"token operator\">=<\/span>simple\nKillMode<span class=\"token operator\">=<\/span>process\nRestart<span class=\"token operator\">=<\/span>on<span class=\"token operator\">-<\/span>failure\nRestartSec<span class=\"token operator\">=<\/span>42s\n\n<span class=\"token punctuation\">[<\/span>Install<span class=\"token punctuation\">]<\/span>\nWantedBy<span class=\"token operator\">=<\/span>multi<span class=\"token operator\">-<\/span>user<span class=\"token punctuation\">.<\/span>target\n<\/code><\/pre>\n<\/blockquote>\n<p>\u53ef\u4ee5\u770b\u5230\uff0c\u914d\u7f6e\u6587\u4ef6\u5206\u6210\u51e0\u4e2a\u533a\u5757\uff0c\u6bcf\u4e2a\u533a\u5757\u5305\u542b\u82e5\u5e72\u6761\u952e\u503c\u5bf9\u3002<\/p>\n<p>\u4e0b\u9762\u4f9d\u6b21\u89e3\u91ca\u6bcf\u4e2a\u533a\u5757\u7684\u5185\u5bb9\u3002<\/p>\n<h2>\u4e94\u3001 [Unit] \u533a\u5757\uff1a\u542f\u52a8\u987a\u5e8f\u4e0e\u4f9d\u8d56\u5173\u7cfb\u3002<\/h2>\n<p><code>Unit<\/code>\u533a\u5757\u7684<code>Description<\/code>\u5b57\u6bb5\u7ed9\u51fa\u5f53\u524d\u670d\u52a1\u7684\u7b80\u5355\u63cf\u8ff0\uff0c<code>Documentation<\/code>\u5b57\u6bb5\u7ed9\u51fa\u6587\u6863\u4f4d\u7f6e\u3002<\/p>\n<p>\u63a5\u4e0b\u6765\u7684\u8bbe\u7f6e\u662f\u542f\u52a8\u987a\u5e8f\u548c\u4f9d\u8d56\u5173\u7cfb\uff0c\u8fd9\u4e2a\u6bd4\u8f83\u91cd\u8981\u3002<\/p>\n<blockquote><p><code>After<\/code>\u5b57\u6bb5\uff1a\u8868\u793a\u5982\u679c<code>network.target<\/code>\u6216<code>sshd-keygen.service<\/code>\u9700\u8981\u542f\u52a8\uff0c\u90a3\u4e48<code>sshd.service<\/code>\u5e94\u8be5\u5728\u5b83\u4eec\u4e4b\u540e\u542f\u52a8\u3002<\/p><\/blockquote>\n<p>\u76f8\u5e94\u5730\uff0c\u8fd8\u6709\u4e00\u4e2a<code>Before<\/code>\u5b57\u6bb5\uff0c\u5b9a\u4e49<code>sshd.service<\/code>\u5e94\u8be5\u5728\u54ea\u4e9b\u670d\u52a1\u4e4b\u524d\u542f\u52a8\u3002<\/p>\n<p>\u6ce8\u610f\uff0c<code>After<\/code>\u548c<code>Before<\/code>\u5b57\u6bb5\u53ea\u6d89\u53ca\u542f\u52a8\u987a\u5e8f\uff0c\u4e0d\u6d89\u53ca\u4f9d\u8d56\u5173\u7cfb\u3002<\/p>\n<p>\u4e3e\u4f8b\u6765\u8bf4\uff0c\u67d0 Web \u5e94\u7528\u9700\u8981 postgresql \u6570\u636e\u5e93\u50a8\u5b58\u6570\u636e\u3002\u5728\u914d\u7f6e\u6587\u4ef6\u4e2d\uff0c\u5b83\u53ea\u5b9a\u4e49\u8981\u5728 postgresql \u4e4b\u540e\u542f\u52a8\uff0c\u800c\u6ca1\u6709\u5b9a\u4e49\u4f9d\u8d56 postgresql \u3002\u4e0a\u7ebf\u540e\uff0c\u7531\u4e8e\u67d0\u79cd\u539f\u56e0\uff0cpostgresql \u9700\u8981\u91cd\u65b0\u542f\u52a8\uff0c\u5728\u505c\u6b62\u670d\u52a1\u671f\u95f4\uff0c\u8be5 Web \u5e94\u7528\u5c31\u4f1a\u65e0\u6cd5\u5efa\u7acb\u6570\u636e\u5e93\u8fde\u63a5\u3002<\/p>\n<p>\u8bbe\u7f6e\u4f9d\u8d56\u5173\u7cfb\uff0c\u9700\u8981\u4f7f\u7528<code>Wants<\/code>\u5b57\u6bb5\u548c<code>Requires<\/code>\u5b57\u6bb5\u3002<\/p>\n<blockquote><p><code>Wants<\/code>\u5b57\u6bb5\uff1a\u8868\u793a<code>sshd.service<\/code>\u4e0e<code>sshd-keygen.service<\/code>\u4e4b\u95f4\u5b58\u5728&#8221;\u5f31\u4f9d\u8d56&#8221;\u5173\u7cfb\uff0c\u5373\u5982\u679c&#8221;sshd-keygen.service&#8221;\u542f\u52a8\u5931\u8d25\u6216\u505c\u6b62\u8fd0\u884c\uff0c\u4e0d\u5f71\u54cd<code>sshd.service<\/code>\u7ee7\u7eed\u6267\u884c\u3002<\/p><\/blockquote>\n<p><code>Requires<\/code>\u5b57\u6bb5\u5219\u8868\u793a&#8221;\u5f3a\u4f9d\u8d56&#8221;\u5173\u7cfb\uff0c\u5373\u5982\u679c\u8be5\u670d\u52a1\u542f\u52a8\u5931\u8d25\u6216\u5f02\u5e38\u9000\u51fa\uff0c\u90a3\u4e48<code>sshd.service<\/code>\u4e5f\u5fc5\u987b\u9000\u51fa\u3002<\/p>\n<p>\u6ce8\u610f\uff0c<code>Wants<\/code>\u5b57\u6bb5\u4e0e<code>Requires<\/code>\u5b57\u6bb5\u53ea\u6d89\u53ca\u4f9d\u8d56\u5173\u7cfb\uff0c\u4e0e\u542f\u52a8\u987a\u5e8f\u65e0\u5173\uff0c\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u662f\u540c\u65f6\u542f\u52a8\u7684\u3002<\/p>\n<h2>\u516d\u3001[Service] \u533a\u5757\uff1a\u542f\u52a8\u884c\u4e3a<\/h2>\n<p><code>Service<\/code>\u533a\u5757\u5b9a\u4e49\u5982\u4f55\u542f\u52a8\u5f53\u524d\u670d\u52a1\u3002<\/p>\n<h3>6.1 \u542f\u52a8\u547d\u4ee4<\/h3>\n<p>\u8bb8\u591a\u8f6f\u4ef6\u90fd\u6709\u81ea\u5df1\u7684\u73af\u5883\u53c2\u6570\u6587\u4ef6\uff0c\u8be5\u6587\u4ef6\u53ef\u4ee5\u7528<code>EnvironmentFile<\/code>\u5b57\u6bb5\u8bfb\u53d6\u3002<\/p>\n<blockquote><p><code>EnvironmentFile<\/code>\u5b57\u6bb5\uff1a\u6307\u5b9a\u5f53\u524d\u670d\u52a1\u7684\u73af\u5883\u53c2\u6570\u6587\u4ef6\u3002\u8be5\u6587\u4ef6\u5185\u90e8\u7684<code>key=value<\/code>\u952e\u503c\u5bf9\uff0c\u53ef\u4ee5\u7528<code>$key<\/code>\u7684\u5f62\u5f0f\uff0c\u5728\u5f53\u524d\u914d\u7f6e\u6587\u4ef6\u4e2d\u83b7\u53d6\u3002<\/p><\/blockquote>\n<p>\u4e0a\u9762\u7684\u4f8b\u5b50\u4e2d\uff0csshd \u7684\u73af\u5883\u53c2\u6570\u6587\u4ef6\u662f<code>\/etc\/sysconfig\/sshd<\/code>\u3002<\/p>\n<p>\u914d\u7f6e\u6587\u4ef6\u91cc\u9762\u6700\u91cd\u8981\u7684\u5b57\u6bb5\u662f<code>ExecStart<\/code>\u3002<\/p>\n<blockquote><p><code>ExecStart<\/code>\u5b57\u6bb5\uff1a\u5b9a\u4e49\u542f\u52a8\u8fdb\u7a0b\u65f6\u6267\u884c\u7684\u547d\u4ee4\u3002<\/p><\/blockquote>\n<p>\u4e0a\u9762\u7684\u4f8b\u5b50\u4e2d\uff0c\u542f\u52a8<code>sshd<\/code>\uff0c\u6267\u884c\u7684\u547d\u4ee4\u662f<code>\/usr\/sbin\/sshd -D $OPTIONS<\/code>\uff0c\u5176\u4e2d\u7684\u53d8\u91cf<code>$OPTIONS<\/code>\u5c31\u6765\u81ea<code>EnvironmentFile<\/code>\u5b57\u6bb5\u6307\u5b9a\u7684\u73af\u5883\u53c2\u6570\u6587\u4ef6\u3002<\/p>\n<p>\u4e0e\u4e4b\u4f5c\u7528\u76f8\u4f3c\u7684\uff0c\u8fd8\u6709\u5982\u4e0b\u8fd9\u4e9b\u5b57\u6bb5\u3002<\/p>\n<blockquote>\n<ul>\n<li><code>ExecReload<\/code>\u5b57\u6bb5\uff1a\u91cd\u542f\u670d\u52a1\u65f6\u6267\u884c\u7684\u547d\u4ee4<\/li>\n<li><code>ExecStop<\/code>\u5b57\u6bb5\uff1a\u505c\u6b62\u670d\u52a1\u65f6\u6267\u884c\u7684\u547d\u4ee4<\/li>\n<li><code>ExecStartPre<\/code>\u5b57\u6bb5\uff1a\u542f\u52a8\u670d\u52a1\u4e4b\u524d\u6267\u884c\u7684\u547d\u4ee4<\/li>\n<li><code>ExecStartPost<\/code>\u5b57\u6bb5\uff1a\u542f\u52a8\u670d\u52a1\u4e4b\u540e\u6267\u884c\u7684\u547d\u4ee4<\/li>\n<li><code>ExecStopPost<\/code>\u5b57\u6bb5\uff1a\u505c\u6b62\u670d\u52a1\u4e4b\u540e\u6267\u884c\u7684\u547d\u4ee4<\/li>\n<\/ul>\n<\/blockquote>\n<p>\u8bf7\u770b\u4e0b\u9762\u7684\u4f8b\u5b50\u3002<\/p>\n<blockquote>\n<pre class=\" language-bash\"><code class=\" language-bash\">\n<span class=\"token punctuation\">[<\/span>Service<span class=\"token punctuation\">]<\/span>\nExecStart<span class=\"token operator\">=<\/span><span class=\"token operator\">\/<\/span>bin<span class=\"token operator\">\/<\/span><span class=\"token keyword\">echo<\/span> execstart1\nExecStart<span class=\"token operator\">=<\/span>\nExecStart<span class=\"token operator\">=<\/span><span class=\"token operator\">\/<\/span>bin<span class=\"token operator\">\/<\/span><span class=\"token keyword\">echo<\/span> execstart2\nExecStartPost<span class=\"token operator\">=<\/span><span class=\"token operator\">\/<\/span>bin<span class=\"token operator\">\/<\/span><span class=\"token keyword\">echo<\/span> post1\nExecStartPost<span class=\"token operator\">=<\/span><span class=\"token operator\">\/<\/span>bin<span class=\"token operator\">\/<\/span><span class=\"token keyword\">echo<\/span> post2\n<\/code><\/pre>\n<\/blockquote>\n<p>\u4e0a\u9762\u8fd9\u4e2a\u914d\u7f6e\u6587\u4ef6\uff0c\u7b2c\u4e8c\u884c<code>ExecStart<\/code>\u8bbe\u4e3a\u7a7a\u503c\uff0c\u7b49\u4e8e\u53d6\u6d88\u4e86\u7b2c\u4e00\u884c\u7684\u8bbe\u7f6e\uff0c\u8fd0\u884c\u7ed3\u679c\u5982\u4e0b\u3002<\/p>\n<blockquote>\n<pre class=\" language-bash\"><code class=\" language-bash\">\nexecstart2\npost1\npost2\n<\/code><\/pre>\n<\/blockquote>\n<p>\u6240\u6709\u7684\u542f\u52a8\u8bbe\u7f6e\u4e4b\u524d\uff0c\u90fd\u53ef\u4ee5\u52a0\u4e0a\u4e00\u4e2a\u8fde\u8bcd\u53f7\uff08<code>-<\/code>\uff09\uff0c\u8868\u793a&#8221;\u6291\u5236\u9519\u8bef&#8221;\uff0c\u5373\u53d1\u751f\u9519\u8bef\u7684\u65f6\u5019\uff0c\u4e0d\u5f71\u54cd\u5176\u4ed6\u547d\u4ee4\u7684\u6267\u884c\u3002\u6bd4\u5982\uff0c<code>EnvironmentFile=-\/etc\/sysconfig\/sshd<\/code>\uff08\u6ce8\u610f\u7b49\u53f7\u540e\u9762\u7684\u90a3\u4e2a\u8fde\u8bcd\u53f7\uff09\uff0c\u5c31\u8868\u793a\u5373\u4f7f<code>\/etc\/sysconfig\/sshd<\/code>\u6587\u4ef6\u4e0d\u5b58\u5728\uff0c\u4e5f\u4e0d\u4f1a\u629b\u51fa\u9519\u8bef\u3002<\/p>\n<h3>6.2 \u542f\u52a8\u7c7b\u578b<\/h3>\n<p><code>Type<\/code>\u5b57\u6bb5\u5b9a\u4e49\u542f\u52a8\u7c7b\u578b\u3002\u5b83\u53ef\u4ee5\u8bbe\u7f6e\u7684\u503c\u5982\u4e0b\u3002<\/p>\n<blockquote>\n<ul>\n<li>simple\uff08\u9ed8\u8ba4\u503c\uff09\uff1a<code>ExecStart<\/code>\u5b57\u6bb5\u542f\u52a8\u7684\u8fdb\u7a0b\u4e3a\u4e3b\u8fdb\u7a0b<\/li>\n<li>forking\uff1a<code>ExecStart<\/code>\u5b57\u6bb5\u5c06\u4ee5<code>fork()<\/code>\u65b9\u5f0f\u542f\u52a8\uff0c\u6b64\u65f6\u7236\u8fdb\u7a0b\u5c06\u4f1a\u9000\u51fa\uff0c\u5b50\u8fdb\u7a0b\u5c06\u6210\u4e3a\u4e3b\u8fdb\u7a0b<\/li>\n<li>oneshot\uff1a\u7c7b\u4f3c\u4e8e<code>simple<\/code>\uff0c\u4f46\u53ea\u6267\u884c\u4e00\u6b21\uff0cSystemd \u4f1a\u7b49\u5b83\u6267\u884c\u5b8c\uff0c\u624d\u542f\u52a8\u5176\u4ed6\u670d\u52a1<\/li>\n<li>dbus\uff1a\u7c7b\u4f3c\u4e8e<code>simple<\/code>\uff0c\u4f46\u4f1a\u7b49\u5f85 D-Bus \u4fe1\u53f7\u540e\u542f\u52a8<\/li>\n<li>notify\uff1a\u7c7b\u4f3c\u4e8e<code>simple<\/code>\uff0c\u542f\u52a8\u7ed3\u675f\u540e\u4f1a\u53d1\u51fa\u901a\u77e5\u4fe1\u53f7\uff0c\u7136\u540e Systemd \u518d\u542f\u52a8\u5176\u4ed6\u670d\u52a1<\/li>\n<li>idle\uff1a\u7c7b\u4f3c\u4e8e<code>simple<\/code>\uff0c\u4f46\u662f\u8981\u7b49\u5230\u5176\u4ed6\u4efb\u52a1\u90fd\u6267\u884c\u5b8c\uff0c\u624d\u4f1a\u542f\u52a8\u8be5\u670d\u52a1\u3002\u4e00\u79cd\u4f7f\u7528\u573a\u5408\u662f\u4e3a\u8ba9\u8be5\u670d\u52a1\u7684\u8f93\u51fa\uff0c\u4e0d\u4e0e\u5176\u4ed6\u670d\u52a1\u7684\u8f93\u51fa\u76f8\u6df7\u5408<\/li>\n<\/ul>\n<\/blockquote>\n<p>\u4e0b\u9762\u662f\u4e00\u4e2a<code>oneshot<\/code>\u7684\u4f8b\u5b50\uff0c\u7b14\u8bb0\u672c\u7535\u8111\u542f\u52a8\u65f6\uff0c\u8981\u628a\u89e6\u6478\u677f\u5173\u6389\uff0c\u914d\u7f6e\u6587\u4ef6\u53ef\u4ee5\u8fd9\u6837\u5199\u3002<\/p>\n<blockquote>\n<pre class=\" language-bash\"><code class=\" language-bash\">\n<span class=\"token punctuation\">[<\/span>Unit<span class=\"token punctuation\">]<\/span>\nDescription<span class=\"token operator\">=<\/span>Switch<span class=\"token operator\">-<\/span>off Touchpad\n\n<span class=\"token punctuation\">[<\/span>Service<span class=\"token punctuation\">]<\/span>\nType<span class=\"token operator\">=<\/span>oneshot\nExecStart<span class=\"token operator\">=<\/span><span class=\"token operator\">\/<\/span>usr<span class=\"token operator\">\/<\/span>bin<span class=\"token operator\">\/<\/span>touchpad<span class=\"token operator\">-<\/span>off\n\n<span class=\"token punctuation\">[<\/span>Install<span class=\"token punctuation\">]<\/span>\nWantedBy<span class=\"token operator\">=<\/span>multi<span class=\"token operator\">-<\/span>user<span class=\"token punctuation\">.<\/span>target\n<\/code><\/pre>\n<\/blockquote>\n<p>\u4e0a\u9762\u7684\u914d\u7f6e\u6587\u4ef6\uff0c\u542f\u52a8\u7c7b\u578b\u8bbe\u4e3a<code>oneshot<\/code>\uff0c\u5c31\u8868\u660e\u8fd9\u4e2a\u670d\u52a1\u53ea\u8981\u8fd0\u884c\u4e00\u6b21\u5c31\u591f\u4e86\uff0c\u4e0d\u9700\u8981\u957f\u671f\u8fd0\u884c\u3002<\/p>\n<p>\u5982\u679c\u5173\u95ed\u4ee5\u540e\uff0c\u5c06\u6765\u67d0\u4e2a\u65f6\u5019\u8fd8\u60f3\u6253\u5f00\uff0c\u914d\u7f6e\u6587\u4ef6\u4fee\u6539\u5982\u4e0b\u3002<\/p>\n<blockquote>\n<pre class=\" language-bash\"><code class=\" language-bash\">\n<span class=\"token punctuation\">[<\/span>Unit<span class=\"token punctuation\">]<\/span>\nDescription<span class=\"token operator\">=<\/span>Switch<span class=\"token operator\">-<\/span>off Touchpad\n\n<span class=\"token punctuation\">[<\/span>Service<span class=\"token punctuation\">]<\/span>\nType<span class=\"token operator\">=<\/span>oneshot\nExecStart<span class=\"token operator\">=<\/span><span class=\"token operator\">\/<\/span>usr<span class=\"token operator\">\/<\/span>bin<span class=\"token operator\">\/<\/span>touchpad<span class=\"token operator\">-<\/span>off start\nExecStop<span class=\"token operator\">=<\/span><span class=\"token operator\">\/<\/span>usr<span class=\"token operator\">\/<\/span>bin<span class=\"token operator\">\/<\/span>touchpad<span class=\"token operator\">-<\/span>off stop\nRemainAfterExit<span class=\"token operator\">=<\/span>yes\n\n<span class=\"token punctuation\">[<\/span>Install<span class=\"token punctuation\">]<\/span>\nWantedBy<span class=\"token operator\">=<\/span>multi<span class=\"token operator\">-<\/span>user<span class=\"token punctuation\">.<\/span>target\n<\/code><\/pre>\n<\/blockquote>\n<p>\u4e0a\u9762\u914d\u7f6e\u6587\u4ef6\u4e2d\uff0c<code>RemainAfterExit<\/code>\u5b57\u6bb5\u8bbe\u4e3a<code>yes<\/code>\uff0c\u8868\u793a\u8fdb\u7a0b\u9000\u51fa\u4ee5\u540e\uff0c\u670d\u52a1\u4ecd\u7136\u4fdd\u6301\u6267\u884c\u3002\u8fd9\u6837\u7684\u8bdd\uff0c\u4e00\u65e6\u4f7f\u7528<code>systemctl stop<\/code>\u547d\u4ee4\u505c\u6b62\u670d\u52a1\uff0c<code>ExecStop<\/code>\u6307\u5b9a\u7684\u547d\u4ee4\u5c31\u4f1a\u6267\u884c\uff0c\u4ece\u800c\u91cd\u65b0\u5f00\u542f\u89e6\u6478\u677f\u3002<\/p>\n<h3>6.3 \u91cd\u542f\u884c\u4e3a<\/h3>\n<p><code>Service<\/code>\u533a\u5757\u6709\u4e00\u4e9b\u5b57\u6bb5\uff0c\u5b9a\u4e49\u4e86\u91cd\u542f\u884c\u4e3a\u3002<\/p>\n<blockquote><p><code>KillMode<\/code>\u5b57\u6bb5\uff1a\u5b9a\u4e49 Systemd \u5982\u4f55\u505c\u6b62 sshd \u670d\u52a1\u3002<\/p><\/blockquote>\n<p>\u4e0a\u9762\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0c\u5c06<code>KillMode<\/code>\u8bbe\u4e3a<code>process<\/code>\uff0c\u8868\u793a\u53ea\u505c\u6b62\u4e3b\u8fdb\u7a0b\uff0c\u4e0d\u505c\u6b62\u4efb\u4f55sshd \u5b50\u8fdb\u7a0b\uff0c\u5373\u5b50\u8fdb\u7a0b\u6253\u5f00\u7684 SSH session \u4ecd\u7136\u4fdd\u6301\u8fde\u63a5\u3002\u8fd9\u4e2a\u8bbe\u7f6e\u4e0d\u592a\u5e38\u89c1\uff0c\u4f46\u5bf9 sshd \u5f88\u91cd\u8981\uff0c\u5426\u5219\u4f60\u505c\u6b62\u670d\u52a1\u7684\u65f6\u5019\uff0c\u4f1a\u8fde\u81ea\u5df1\u6253\u5f00\u7684 SSH session \u4e00\u8d77\u6740\u6389\u3002<\/p>\n<p><code>KillMode<\/code>\u5b57\u6bb5\u53ef\u4ee5\u8bbe\u7f6e\u7684\u503c\u5982\u4e0b\u3002<\/p>\n<blockquote>\n<ul>\n<li>control-group\uff08\u9ed8\u8ba4\u503c\uff09\uff1a\u5f53\u524d\u63a7\u5236\u7ec4\u91cc\u9762\u7684\u6240\u6709\u5b50\u8fdb\u7a0b\uff0c\u90fd\u4f1a\u88ab\u6740\u6389<\/li>\n<li>process\uff1a\u53ea\u6740\u4e3b\u8fdb\u7a0b<\/li>\n<li>mixed\uff1a\u4e3b\u8fdb\u7a0b\u5c06\u6536\u5230 SIGTERM \u4fe1\u53f7\uff0c\u5b50\u8fdb\u7a0b\u6536\u5230 SIGKILL \u4fe1\u53f7<\/li>\n<li>none\uff1a\u6ca1\u6709\u8fdb\u7a0b\u4f1a\u88ab\u6740\u6389\uff0c\u53ea\u662f\u6267\u884c\u670d\u52a1\u7684 stop \u547d\u4ee4\u3002<\/li>\n<\/ul>\n<\/blockquote>\n<p>\u63a5\u4e0b\u6765\u662f<code>Restart<\/code>\u5b57\u6bb5\u3002<\/p>\n<blockquote><p><code>Restart<\/code>\u5b57\u6bb5\uff1a\u5b9a\u4e49\u4e86 sshd \u9000\u51fa\u540e\uff0cSystemd \u7684\u91cd\u542f\u65b9\u5f0f\u3002<\/p><\/blockquote>\n<p>\u4e0a\u9762\u7684\u4f8b\u5b50\u4e2d\uff0c<code>Restart<\/code>\u8bbe\u4e3a<code>on-failure<\/code>\uff0c\u8868\u793a\u4efb\u4f55\u610f\u5916\u7684\u5931\u8d25\uff0c\u5c31\u5c06\u91cd\u542fsshd\u3002\u5982\u679c sshd \u6b63\u5e38\u505c\u6b62\uff08\u6bd4\u5982\u6267\u884c<code>systemctl stop<\/code>\u547d\u4ee4\uff09\uff0c\u5b83\u5c31\u4e0d\u4f1a\u91cd\u542f\u3002<\/p>\n<p><code>Restart<\/code>\u5b57\u6bb5\u53ef\u4ee5\u8bbe\u7f6e\u7684\u503c\u5982\u4e0b\u3002<\/p>\n<blockquote>\n<ul>\n<li>no\uff08\u9ed8\u8ba4\u503c\uff09\uff1a\u9000\u51fa\u540e\u4e0d\u4f1a\u91cd\u542f<\/li>\n<li>on-success\uff1a\u53ea\u6709\u6b63\u5e38\u9000\u51fa\u65f6\uff08\u9000\u51fa\u72b6\u6001\u7801\u4e3a0\uff09\uff0c\u624d\u4f1a\u91cd\u542f<\/li>\n<li>on-failure\uff1a\u975e\u6b63\u5e38\u9000\u51fa\u65f6\uff08\u9000\u51fa\u72b6\u6001\u7801\u975e0\uff09\uff0c\u5305\u62ec\u88ab\u4fe1\u53f7\u7ec8\u6b62\u548c\u8d85\u65f6\uff0c\u624d\u4f1a\u91cd\u542f<\/li>\n<li>on-abnormal\uff1a\u53ea\u6709\u88ab\u4fe1\u53f7\u7ec8\u6b62\u548c\u8d85\u65f6\uff0c\u624d\u4f1a\u91cd\u542f<\/li>\n<li>on-abort\uff1a\u53ea\u6709\u5728\u6536\u5230\u6ca1\u6709\u6355\u6349\u5230\u7684\u4fe1\u53f7\u7ec8\u6b62\u65f6\uff0c\u624d\u4f1a\u91cd\u542f<\/li>\n<li>on-watchdog\uff1a\u8d85\u65f6\u9000\u51fa\uff0c\u624d\u4f1a\u91cd\u542f<\/li>\n<li>always\uff1a\u4e0d\u7ba1\u662f\u4ec0\u4e48\u9000\u51fa\u539f\u56e0\uff0c\u603b\u662f\u91cd\u542f<\/li>\n<\/ul>\n<\/blockquote>\n<p>\u5bf9\u4e8e\u5b88\u62a4\u8fdb\u7a0b\uff0c\u63a8\u8350\u8bbe\u4e3a<code>on-failure<\/code>\u3002\u5bf9\u4e8e\u90a3\u4e9b\u5141\u8bb8\u53d1\u751f\u9519\u8bef\u9000\u51fa\u7684\u670d\u52a1\uff0c\u53ef\u4ee5\u8bbe\u4e3a<code>on-abnormal<\/code>\u3002<\/p>\n<p>\u6700\u540e\u662f<code>RestartSec<\/code>\u5b57\u6bb5\u3002<\/p>\n<blockquote><p><code>RestartSec<\/code>\u5b57\u6bb5\uff1a\u8868\u793a Systemd \u91cd\u542f\u670d\u52a1\u4e4b\u524d\uff0c\u9700\u8981\u7b49\u5f85\u7684\u79d2\u6570\u3002\u4e0a\u9762\u7684\u4f8b\u5b50\u8bbe\u4e3a\u7b49\u5f8542\u79d2\u3002<\/p><\/blockquote>\n<h2>\u4e03\u3001[Install] \u533a\u5757<\/h2>\n<p><code>Install<\/code>\u533a\u5757\uff0c\u5b9a\u4e49\u5982\u4f55\u5b89\u88c5\u8fd9\u4e2a\u914d\u7f6e\u6587\u4ef6\uff0c\u5373\u600e\u6837\u505a\u5230\u5f00\u673a\u542f\u52a8\u3002<\/p>\n<blockquote><p><code>WantedBy<\/code>\u5b57\u6bb5\uff1a\u8868\u793a\u8be5\u670d\u52a1\u6240\u5728\u7684 Target\u3002<\/p><\/blockquote>\n<p><code>Target<\/code>\u7684\u542b\u4e49\u662f\u670d\u52a1\u7ec4\uff0c\u8868\u793a\u4e00\u7ec4\u670d\u52a1\u3002<code>WantedBy=multi-user.target<\/code>\u6307\u7684\u662f\uff0csshd \u6240\u5728\u7684 Target \u662f<code>multi-user.target<\/code>\u3002<\/p>\n<p>\u8fd9\u4e2a\u8bbe\u7f6e\u975e\u5e38\u91cd\u8981\uff0c\u56e0\u4e3a\u6267\u884c<code>systemctl enable sshd.service<\/code>\u547d\u4ee4\u65f6\uff0c<code>sshd.service<\/code>\u7684\u4e00\u4e2a\u7b26\u53f7\u94fe\u63a5\uff0c\u5c31\u4f1a\u653e\u5728<code>\/etc\/systemd\/system<\/code>\u76ee\u5f55\u4e0b\u9762\u7684<code>multi-user.target.wants<\/code>\u5b50\u76ee\u5f55\u4e4b\u4e2d\u3002<\/p>\n<p>Systemd \u6709\u9ed8\u8ba4\u7684\u542f\u52a8 Target\u3002<\/p>\n<blockquote>\n<pre class=\" language-bash\"><code class=\" language-bash\">\n$ systemctl get<span class=\"token operator\">-<\/span>default\nmulti<span class=\"token operator\">-<\/span>user<span class=\"token punctuation\">.<\/span>target\n<\/code><\/pre>\n<\/blockquote>\n<p>\u4e0a\u9762\u7684\u7ed3\u679c\u8868\u793a\uff0c\u9ed8\u8ba4\u7684\u542f\u52a8 Target \u662f<code>multi-user.target<\/code>\u3002\u5728\u8fd9\u4e2a\u7ec4\u91cc\u7684\u6240\u6709\u670d\u52a1\uff0c\u90fd\u5c06\u5f00\u673a\u542f\u52a8\u3002\u8fd9\u5c31\u662f\u4e3a\u4ec0\u4e48<code>systemctl enable<\/code>\u547d\u4ee4\u80fd\u8bbe\u7f6e\u5f00\u673a\u542f\u52a8\u7684\u539f\u56e0\u3002<\/p>\n<p>\u4f7f\u7528 Target \u7684\u65f6\u5019\uff0c<code>systemctl list-dependencies<\/code>\u547d\u4ee4\u548c<code>systemctl isolate<\/code>\u547d\u4ee4\u4e5f\u5f88\u6709\u7528\u3002<\/p>\n<blockquote>\n<pre class=\" language-bash\"><code class=\" language-bash\">\n<span class=\"token comment\" spellcheck=\"true\"># \u67e5\u770b multi-user.target \u5305\u542b\u7684\u6240\u6709\u670d\u52a1\n<\/span>$ systemctl list<span class=\"token operator\">-<\/span>dependencies multi<span class=\"token operator\">-<\/span>user<span class=\"token punctuation\">.<\/span>target\n\n<span class=\"token comment\" spellcheck=\"true\"># \u5207\u6362\u5230\u53e6\u4e00\u4e2a target\n<\/span><span class=\"token comment\" spellcheck=\"true\"># shutdown.target \u5c31\u662f\u5173\u673a\u72b6\u6001\n<\/span>$ sudo systemctl isolate shutdown<span class=\"token punctuation\">.<\/span>target\n<\/code><\/pre>\n<\/blockquote>\n<p>\u4e00\u822c\u6765\u8bf4\uff0c\u5e38\u7528\u7684 Target \u6709\u4e24\u4e2a\uff1a\u4e00\u4e2a\u662f<code>multi-user.target<\/code>\uff0c\u8868\u793a\u591a\u7528\u6237\u547d\u4ee4\u884c\u72b6\u6001\uff1b\u53e6\u4e00\u4e2a\u662f<code>graphical.target<\/code>\uff0c\u8868\u793a\u56fe\u5f62\u7528\u6237\u72b6\u6001\uff0c\u5b83\u4f9d\u8d56\u4e8e<code>multi-user.target<\/code>\u3002\u5b98\u65b9\u6587\u6863\u6709\u4e00\u5f20\u975e\u5e38\u6e05\u6670\u7684\u00a0<a href=\"https:\/\/www.freedesktop.org\/software\/systemd\/man\/bootup.html#System%20Manager%20Bootup\" target=\"_blank\" rel=\"noopener noreferrer\">Target \u4f9d\u8d56\u5173\u7cfb\u56fe<\/a>\u3002<\/p>\n<h2>\u516b\u3001Target \u7684\u914d\u7f6e\u6587\u4ef6<\/h2>\n<p>Target \u4e5f\u6709\u81ea\u5df1\u7684\u914d\u7f6e\u6587\u4ef6\u3002<\/p>\n<blockquote>\n<pre class=\" language-bash\"><code class=\" language-bash\">\n$ systemctl cat multi<span class=\"token operator\">-<\/span>user<span class=\"token punctuation\">.<\/span>target\n\n<span class=\"token punctuation\">[<\/span>Unit<span class=\"token punctuation\">]<\/span>\nDescription<span class=\"token operator\">=<\/span>Multi<span class=\"token operator\">-<\/span>User System\nDocumentation<span class=\"token operator\">=<\/span>man<span class=\"token punctuation\">:<\/span>systemd<span class=\"token punctuation\">.<\/span><span class=\"token function\">special<span class=\"token punctuation\">(<\/span><\/span><span class=\"token number\">7<\/span><span class=\"token punctuation\">)<\/span>\nRequires<span class=\"token operator\">=<\/span>basic<span class=\"token punctuation\">.<\/span>target\nConflicts<span class=\"token operator\">=<\/span>rescue<span class=\"token punctuation\">.<\/span>service rescue<span class=\"token punctuation\">.<\/span>target\nAfter<span class=\"token operator\">=<\/span>basic<span class=\"token punctuation\">.<\/span>target rescue<span class=\"token punctuation\">.<\/span>service rescue<span class=\"token punctuation\">.<\/span>target\nAllowIsolate<span class=\"token operator\">=<\/span>yes\n<\/code><\/pre>\n<\/blockquote>\n<p>\u6ce8\u610f\uff0cTarget \u914d\u7f6e\u6587\u4ef6\u91cc\u9762\u6ca1\u6709\u542f\u52a8\u547d\u4ee4\u3002<\/p>\n<p>\u4e0a\u9762\u8f93\u51fa\u7ed3\u679c\u4e2d\uff0c\u4e3b\u8981\u5b57\u6bb5\u542b\u4e49\u5982\u4e0b\u3002<\/p>\n<blockquote><p><code>Requires<\/code>\u5b57\u6bb5\uff1a\u8981\u6c42<code>basic.target<\/code>\u4e00\u8d77\u8fd0\u884c\u3002<\/p>\n<p><code>Conflicts<\/code>\u5b57\u6bb5\uff1a\u51b2\u7a81\u5b57\u6bb5\u3002\u5982\u679c<code>rescue.service<\/code>\u6216<code>rescue.target<\/code>\u6b63\u5728\u8fd0\u884c\uff0c<code>multi-user.target<\/code>\u5c31\u4e0d\u80fd\u8fd0\u884c\uff0c\u53cd\u4e4b\u4ea6\u7136\u3002<\/p>\n<p><code>After<\/code>\uff1a\u8868\u793a<code>multi-user.target<\/code>\u5728<code>basic.target<\/code>\u00a0\u3001\u00a0<code>rescue.service<\/code>\u3001\u00a0<code>rescue.target<\/code>\u4e4b\u540e\u542f\u52a8\uff0c\u5982\u679c\u5b83\u4eec\u6709\u542f\u52a8\u7684\u8bdd\u3002<\/p>\n<p><code>AllowIsolate<\/code>\uff1a\u5141\u8bb8\u4f7f\u7528<code>systemctl isolate<\/code>\u547d\u4ee4\u5207\u6362\u5230<code>multi-user.target<\/code>\u3002<\/p><\/blockquote>\n<h2>\u4e5d\u3001\u4fee\u6539\u914d\u7f6e\u6587\u4ef6\u540e\u91cd\u542f<\/h2>\n<p>\u4fee\u6539\u914d\u7f6e\u6587\u4ef6\u4ee5\u540e\uff0c\u9700\u8981\u91cd\u65b0\u52a0\u8f7d\u914d\u7f6e\u6587\u4ef6\uff0c\u7136\u540e\u91cd\u65b0\u542f\u52a8\u76f8\u5173\u670d\u52a1\u3002<\/p>\n<blockquote>\n<pre class=\" language-bash\"><code class=\" language-bash\">\n<span class=\"token comment\" spellcheck=\"true\"># \u91cd\u65b0\u52a0\u8f7d\u914d\u7f6e\u6587\u4ef6\n<\/span>$ sudo systemctl daemon<span class=\"token operator\">-<\/span>reload\n\n<span class=\"token comment\" spellcheck=\"true\"># \u91cd\u542f\u76f8\u5173\u670d\u52a1\n<\/span>$ sudo systemctl restart foobar\n<\/code><\/pre>\n<\/blockquote>\n<p>\uff08\u5b8c\uff09<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4e0a\u4e00\u7bc7\u6587\u7ae0\uff0c\u6211\u4ecb\u7ecd\u4e86 Systemd \u7684\u4e3b\u8981\u547d\u4ee4\uff0c\u4eca\u5929\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528\u5b83\u5b8c\u6210\u4e00\u4e9b\u57fa\u672c\u7684\u4efb\u52a1\u3002 \u4e00\u3001\u5f00\u673a\u542f\u52a8 \u5bf9\u4e8e\u90a3\u4e9b\u652f\u6301 Systemd \u7684\u8f6f\u4ef6\uff0c\u5b89\u88c5\u7684\u65f6\u5019\uff0c\u4f1a\u81ea\u52a8\u5728\/usr\/lib\/systemd\/system\u76ee\u5f55\u6dfb\u52a0\u4e00\u4e2a\u914d\u7f6e\u6587\u4ef6\u3002 \u5982\u679c\u4f60\u60f3\u8ba9\u8be5\u8f6f\u4ef6\u5f00\u673a\u542f\u52a8\uff0c\u5c31\u6267\u884c\u4e0b\u9762\u7684\u547d\u4ee4\uff08\u4ee5httpd.service\u4e3a\u4f8b\uff09\u3002 $ sudo systemctl enable httpd \u4e0a\u9762\u7684\u547d\u4ee4\u76f8\u5f53\u4e8e\u5728\/etc\/systemd\/system\u76ee\u5f55\u6dfb\u52a0\u4e00\u4e2a\u7b26\u53f7\u94fe\u63a5\uff0c\u6307\u5411\/usr\/lib\/systemd\/system\u91cc\u9762\u7684httpd.service\u6587\u4ef6\u3002 \u8fd9\u662f\u56e0\u4e3a\u5f00\u673a\u65f6\uff0cSystemd\u53ea\u6267\u884c\/etc\/systemd\/system\u76ee\u5f55\u91cc\u9762\u7684\u914d\u7f6e\u6587\u4ef6\u3002\u8fd9\u4e5f\u610f\u5473\u7740\uff0c\u5982\u679c\u628a\u4fee\u6539\u540e\u7684\u914d\u7f6e\u6587\u4ef6\u653e\u5728\u8be5\u76ee\u5f55\uff0c\u5c31\u53ef\u4ee5\u8fbe\u5230\u8986\u76d6\u539f\u59cb\u914d\u7f6e\u7684\u6548\u679c\u3002 \u4e8c\u3001\u542f\u52a8\u670d\u52a1 \u8bbe\u7f6e\u5f00\u673a\u542f\u52a8\u4ee5\u540e\uff0c\u8f6f\u4ef6\u5e76\u4e0d\u4f1a\u7acb\u5373\u542f\u52a8\uff0c\u5fc5\u987b\u7b49\u5230\u4e0b\u4e00\u6b21\u5f00\u673a\u3002\u5982\u679c\u60f3\u73b0\u5728\u5c31\u8fd0\u884c\u8be5\u8f6f\u4ef6\uff0c\u90a3\u4e48\u8981\u6267\u884csystemctl start\u547d\u4ee4\u3002 $ sudo [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1209","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=\/wp\/v2\/posts\/1209","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1209"}],"version-history":[{"count":0,"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=\/wp\/v2\/posts\/1209\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1209"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1209"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1209"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}