Ubuntu
無法手動執行 rc.local 並且不會在 ubuntu 上自動執行
這是一個非常簡單的。我在這裡創建了一個 rc.local 文件:
/etc/rc.local
我使它可執行。但是,當我啟動伺服器時它不會執行。我可以在目錄中看到它,當我嘗試手動執行它時,我收到以下消息:
root@:/etc# rc.local rc.local: command not found
我的 rc.local 文件內容如下:
#!/bin/sh -e # FUNCTIONS function setup_logs { exec > >(tee -a /var/log/deploy.log) exec 2> >(tee -a /var/log/error.log) } # COMMANDS setup_logs apt-get update # Update aptitude list apt-get -y dist-upgrade # Upgrade aptitude programs cd /etc/spider && git pull # Update deployment code cd /etc/code && git pull # Update library code cd /etc/code && deployment.sh # Run deployment script exit 0
對於我的生活,我不明白我要去哪裡錯了,誰能給我一些幫助?
Ubuntu 預設使用 dash 作為 Shell,而 dash 不知道關鍵字
function
.嘗試將 shebang 更改為
#!/bin/bash
並再次執行。
根據https://wiki.ubuntu.com/DashAsBinSh/#function,如果您只是刪除單詞
function
並在函式名稱後面寫括號,它也應該有所幫助:setup_logs() { exec > >(tee -a /var/log/deploy.log) exec 2> >(tee -a /var/log/error.log) }
確保啟動腳本位於您的 rc 執行級別文件夾中。
/etc/rc2.d/S22rc.local 或類似的東西。