1 . 編輯:
/etc/rc.local
新增想要被執行的命令即可(預設是以 root 使用者執行)。
注: 有些很特殊的情況 /etc/rc.local 不會被執行,可以 編輯 /etc/init.d/rc.local see link: http://www.linuxidc.com/Linux/2016-12/138665.htm
2 . 以期望的使用者執行命令:
su -c ‘ls -l “myfile.txt”‘ guowei &
解釋: 其中需要被執行的命令是 ls -l “myfile.txt”, 期望的使用者的 guowei, & 表示在後臺執行。
3 . 開機以 screen 執行程式指令碼,並新增環境變數(no-login):
#!/bin/bash
# 環境變數要在 su 之前設定好,然後 sudo -E 保持環境變數
# 如果直接是 root 使用者執行該指令碼,則只需要 su -p 或者 su -m 保持環境變數即可
export GUOWEI_DIR=/home/guowei
export PATH=/opt/bin:$PATH
source /home/guowei/.bashrc
if [ -e /opt/my_app ]; then
# sudo -E su -p -l guowei << BASH # 如果要以 guowei 使用者執行那些程式的話,去掉註釋即可。 su – 表示切換的環境變數,sudo 需要新增 -E 選項。
su -p guowei << BASH # 以使用者 guowei 執行以下命令,注意不要加 sudo, 否則就需要以 sudo -E 執行。
cd /home/guowei
screen -d -m /opt/my_app
# BASH
fi
# 或者將 export 寫在 -c 內部, 加上 -c 和 單引號:
su guowei -c 'export A=/opt/bla; blabla~; /opt/my_app' // 注意:雙引號跟單引號有區別