Configuration

/etc/rc.local 和 /etc/init.d/rc.local 有什麼區別?

  • March 20, 2019

我想在iptablesVPS的. 也許有人知道為什麼簡單的啟動程式碼放置兩個地方?它是特定於 linux 的風格嗎(但 ubuntu 兩者都有!)?或者其中之一已被棄用?/etc/rc.local``/etc/init.d/rc.local

/etc/init.d在 ubuntu 上維護是為了向後兼容 sysvinit 的東西。如果您實際查看,/etc/init.d/rc.local您會看到(也來自 12.04 LTS 伺服器):

#! /bin/sh
### BEGIN INIT INFORMATION
# Provides:          rc.local
# Required-Start:    $remote_fs $syslog $all
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:
# Short-Description: Run /etc/rc.local if it exist
### END INIT INFO

而**“執行/etc/rc.local”**正是它的作用。整體/etc/rc.local是:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

exit 0

我猜這樣做的目的是提供一個簡單的地方來放置您希望在啟動時執行的 shell 命令,而不必處理/etc/init.d/rc.local.

所以它實際上是一個服務,並且可以這樣執行。我在和中添加了echo一行/etc/rc.local

»service rc.local start
hello world

但是,我不相信暴發戶/etc/init(不是 init.d!)目錄中的任何內容都引用了它:

»initctl start rc.local
initctl: Unknown job: rc.local

upstart 中有一些“rc”服務:

»initctl list | grep rc
rc stop/waiting
rcS stop/waiting
rc-sysinit stop/waiting

但這些似乎都與 rc.local 無關。

引用自:https://unix.stackexchange.com/questions/59929