請問如何編寫開機後自動執行的script

我想在開機後自動執行下面這段command
#!/bin/sh.sh

# Go to ApplePS2 kexts directory
cd /System/Library/Extensions/ApplePS2Controller.kext/Contents/PlugIns

# Unload trackpad and keyboard kext
sudo kextunload ApplePS2Keyboard.kext
sudo kextunload ApplePS2Trackpad.kext

# Load them again
sudo kextload ApplePS2Keyboard.kext
sudo kextload ApplePS2Trackpad.kext

exit 0

請問我該如何編寫以及執行,包括執行sudo時要如何自動輸入密碼

感謝回答
文章關鍵字
存成一個可執行的檔後丟到這裡:




至於自動輸入密碼這個...
可能得請教其他高人了!
就我對 unix 的了解
不必用到 SUDO
你可以把你的 script 的 owner 改成 root
[chown root.root sh-script]


把檔案放對目錄 放對開機執行的script裡面
開機就會自動執行了
感謝兩位鼎力相助
不過我是mac新手,不知道如何將這一段script存成執行檔,有編譯器嗎?
而Donald Chang提到的,將script owner改成root也許可以解決sudo的問題,但是另外一個問題是osx10.4.6開機的script該放在哪?

請高手回答一下
謝謝!
samling wrote:
感謝兩位鼎力相助不過...(恕刪)

你有兩種方式可以達成你的工作:
1.用AppleScript 插入 shell script,然後如上朋友所述
2.你如果會寫shell 怎麼不會讓它可執行呢?
將它成為可執行:
#chmod 755 script_name
或是任何人都可執行:
#chmod 777 script_name

但是你的這個case, 如果執行的指令要用到sudo ,哪你可能無法在登入後執行,
你必須在登入前,在開機時期 ,就必須執行,那個時期是 root 在掌控.
你可以參考我的:重複定時執行cron
修改你的/etc/crontab,其中路徑及檔名你決定,@reboot 是開機時會執行,而且是用root
將下面這行加入 /etc/cron 檔案
@reboot root /Users/user_name/script_name


另外Donald Chang 朋友的方法也行,不過owner是root的檔案放在自己的目錄下,似乎怪怪的,你要改自家目錄的權限?還是放在/etc 下?你要規劃一下!

剛剛看了一下/etc/rc裡頭的東西,你可以試看看在/etc新增一個rc.local,因為在/etc/rc裡頭有敘述
if [ -f /etc/rc.local ]; then
sh /etc/rc.local
fi
也就是說如果/etc/rc.local是一個檔案而且存在的話就會去執行,你可以開一個Terminal然後vi /etc/rc.local,內容如下

#!/bin/sh

# Go to ApplePS2 kexts directory
cd /System/Library/Extensions/ApplePS2Controller.kext/Contents/PlugIns

# Unload trackpad and keyboard kext
./kextunload ApplePS2Keyboard.kext
./kextunload ApplePS2Trackpad.kext

# Load them again
./kextload ApplePS2Keyboard.kext
./kextload ApplePS2Trackpad.kext

然後chmod 755 /etc/rc.local,然後重開電腦,看看這樣行不行,祝你好運!!

PS.以上未經過測試
感謝hanzo
這是個簡單的方法,我已經搞定了
不過要注意的是要用sudo vi才能順利寫入rc.local
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!