波波张 發表於 2023-7-2 00:00:00

Linux关机时执行指定脚本功能实现

<p>
        <strong>1.关机时执行某个脚本的具体思路</strong></p>
<p>
        (1)在文件夹/etc/init.d/下创建关机时需要执行的脚本file_name;</p>
<p>
        (2)分别在文件夹/etc/rc0.d/和/etc/rc6.d/下创建该该脚本文件的链接文件K07file_name:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterxhtml" id="highlighter_92516">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="xhtml plain">sudo ln -s /etc/init.d/file_name /etc/rc0.d/K07file_name</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="xhtml plain">sudo ln -s /etc/init.d/file_name /etc/rc6.d/K07file_name</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        (3)在文件夹/var/lock/subsys/下生成与file_name同名的文件</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterxhtml" id="highlighter_786422">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="xhtml plain">sudo mkdir -p /var/lock/subsys/</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="xhtml plain">sudo touch /var/lock/subsys/file_name</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        说明:关键字K07仅需要在文件夹/etc/rc0.d/和/etc/rc6.d/内添加,在/etc/init.d/和<br>
        /var/lock/subsys/里面不需要添加。</p>
<p>
        <strong>2.举例—在Linux关机时执行脚本snaking616</strong></p>
<p>
        脚本snaking616内容如下:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlightercpp" id="highlighter_893419">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="cpp preprocessor">#!/bin/bash </code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="cpp plain">cd /etc/init.d </code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="cpp plain">echo </code><code class="cpp string">"admin"</code><code class="cpp plain">|sudo -S touch eth_set_100 </code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="cpp plain">echo </code><code class="cpp string">"admin"</code><code class="cpp plain">|sudo -S chmod 777 eth_set_100 </code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="cpp plain">echo "#!/bin/bash </code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="cpp plain">echo </code><code class="cpp string">"admin"</code><code class="cpp plain">|sudo -S ethtool -s eth1 autoneg off speed 100 duplex full" &gt; eth_set_100</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        脚本在系统关机时会在文件夹/etc/init.d下自动生成脚本文件eth_set_100,并将以下内容写入该文件内:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlightercpp" id="highlighter_902358">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="cpp preprocessor">#!/bin/bash </code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="cpp plain">echo </code><code class="cpp string">"admin"</code><code class="cpp plain">|sudo -S ethtool -s eth1 autoneg off speed 100 duplex full</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        具体实现方法如下:</p>
<p>
        (1)打开终端创建脚本文件snaking616</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterxhtml" id="highlighter_857020">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="xhtml plain">sudo touch /etc/init.d/snaking616</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="xhtml plain">sudo chmod 777 /etc/init.d/snaking616</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="xhtml plain">sudo gedit /etc/init.d/snaking616</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        填写以下代码:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlightercpp" id="highlighter_243363">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="cpp preprocessor">#!/bin/bash </code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="cpp plain">cd /etc/init.d </code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="cpp plain">echo </code><code class="cpp string">"admin"</code><code class="cpp plain">|sudo -S touch eth_set_100 </code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="cpp plain">echo </code><code class="cpp string">"admin"</code><code class="cpp plain">|sudo -S chmod 777 eth_set_100 </code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="cpp plain">echo "#!/bin/bash </code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="cpp plain">echo </code><code class="cpp string">"admin"</code><code class="cpp plain">|sudo -S ethtool -s eth1 autoneg off speed 100 duplex full" &gt; eth_set_100</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        (2)创建连接文件</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterxhtml" id="highlighter_621208">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="xhtml plain">sudo ln -s /etc/init.d/snaking616 /etc/rc0.d/K07snaking616</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="xhtml plain">sudo ln -s /etc/init.d/snaking616 /etc/rc6.d/K07snaking616</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        (3)在文件夹/var/lock/subsys/下生成与snaking616同名的文件</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterxhtml" id="highlighter_773072">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="xhtml plain">sudo mkdir -p /var/lock/subsys/</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="xhtml plain">sudo touch /var/lock/subsys/snaking616</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        当系统关机时间,在文件夹/etc/init.d下,会自动生成脚本文件eth_set_100。</p>
<p>
        原文链接:http://blog.csdn.net/snaking616/article/details/78680021</p>
頁: [1]
查看完整版本: Linux关机时执行指定脚本功能实现