Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Simple Linux InitScripts.
Shell Makefile Other
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
PKG
rc.d
Makefile
README.wiki
bash-completion
init.pl
inittab
rc-simple.shutdown
rc-simple.sysinit
rc-sys.d
rc.conf
rc.functions
rc.local
rc.local.shutdown
zsh-completion

README.wiki

Table of Contents

Simple (Arch)Linux InitScripts

這套初始化腳本是由原來 Archlinux 的 initscripts 大幅簡化而來。

簡化內容

  • etc/rc.single -> 刪除
  • etc/rc.multi -> 刪除
  • etc/rc.sysinit, arch-modules-load, arch-daemons -> etc/rc-simple.sysinit
  • etc/rc.shutdown -> etc/rc-simple.shutdown

新增內容

  • etc/rc-simple.sysinit, etc/rc-simple.shutdown - 過程可視 (bash -x)
  • usr/sbin/rc-sys.d - 用來開關 systemd 的 service(實驗性功能)
  • usr/sbin/init.pl - 簡陋到爆的init程序,當沒有 sysvinit 時做 fallback
  • 提供開機亮度調整功能,詳見 rc.conf

使用

由於 init.pl 過於簡陋,正常情況下請安裝使用 sysvinit 來做為初始化程式。

systemd(systemd-tools) 並非必要,也可以與 systemd 共存,但是如果要脫離 systemd-tools,需要進行適當修改。

安裝:

$ yaourt -S sysvinit initscripts-simple-git

配置:

# 編輯器 /etc/rc.conf

# 編輯器 /etc/rc.local

如果原有 systemd,但是新安裝了 sysvinit,/usr/sbin/init就會被 sysvinit 佔領(systemd-sysvcompat 被刪除),這時,如果需要以 systemd 進入,就要加引導參數 init=/usr/lib/systemd/systemd。

rc.conf 與原來差別不大,但語言、時區等項目已經被裁剪,請在其他地方設定。

rc.local 由於 /etc/rc.d 中的腳本被消失的原因(官方不再支持 initscripts),顯得極為重要。雖然可以去找老軟件包,但較繁瑣。下面給出一份示例供參考:

rc-sys.d start sshdgenkeys sshd lighttpd
NetworkManager &
/usr/lib/polkit-1/polkitd --no-debug &
/usr/lib/accountsservice/accounts-daemon &
export $(dbus-launch)
slim &

當然如果有以前存留的 rc.d 下的 daemon 腳本,就不用這麽麻煩了。

問題

(2013.7) 一些 GNOME 程序例如 gdm、nm-applet 無法正常運行。

gdm[405]: GdmLocalDisplayFactory: Failed to issue method call: 
GDBus.Error:org.freedesktop.DBus.Error.Spawn.ChildExited: Launch helper 
exited with unknown return code 1

** (nm-applet:1314): WARNING **: Could not initialize NMClient 
/org/freedesktop/NetworkManager: Rejected send message, 2 matched rules; 
type="method_call", sender=":1.35" (uid=1000 pid=1314 comm="nm-applet ") 
interface="org.freedesktop.DBus.Properties" member="GetAll" error 
name="(unset)" requested_reply="0" 
destination="org.freedesktop.NetworkManager" (uid=0 pid=320 
comm="NetworkManager ")
** Message: applet now removed from the notification area
** Message: applet now embedded in the notification area

** (nm-applet:1314): WARNING **: Failed to register as an agent: (32) 
Session not found
** Message: applet now removed from the notification area

但種種跡象又表明dbus正常。如果您知道解決方法,請開 Issue。

(2013.12) 啓動日志已不能工作。

Something went wrong with that request. Please try again.