情況A(以root用戶運行程序,此方法不會加載用戶環境變量,需要加載用戶環境變量的請看情況B)
1. sudo rm /etc/systemd/system/rc-local.service (如果有該文件則刪除,沒有不管)
2. sudo vim /lib/systemd/system/rc-local.service
確保內容如下(只需要在原文后面加入[Install]塊的內容即可):
# This file is part of systemd. # # systemd is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2.1 of the License, or # (at your option) any later version. # This unit gets pulled automatically into multi-user.target by # systemd-rc-local-generator if /etc/rc.local is executable. [Unit] Description=/etc/rc.local Compatibility ConditionFileIsExecutable=/etc/rc.local After=network.target [Service] Type=forking ExecStart=/etc/rc.local start TimeoutSec=0 RemainAfterExit=yes
[Install] WantedBy=multi-user.target Alias=rc-local.service
2. sudo vim /lib/systemd/system/rc-local.service#!/bin/sh -e
echo
"test info">
/usr/local/test
.log &
exit
0
【注意】:
1). #!/bin/sh -e (不要用#!bin/bash)
2). 自己需要啟動的程序寫在exit 0之前
3). 非后台程序需要在命令租后加上&,否則會失敗
4). 路徑用絕對路徑,不要用~這種符號
3. sudo systemctl enable rc-local
該命令是將剛才的/lib/systemd/system/rc-local.service 內容生效,
會產生一個/etc/systemd/system/rc-local.service -》 /lib/systemd/system/rc-local.service
【以上步驟沒問題的話,接下來4,5不會報錯】
4.
sudo systemctl start rc-local
5.
sudo systemctl status rc-local
【確定沒報錯則重啟電腦,查看是否生效】
情況B(以特定用戶運行程序,此方法可以加載用戶環境變量)
1. 以A情況執行(步驟2一個地方不同)
原先步驟2:
sudo vim /lib/systemd/system/rc-local.service
#!/bin/sh -e
sudo -u username echo
"test info"
>
/usr/local/test
.log &
exit
0
【注意】:只需要將自己的命令前加上sudo -u usrname即可
2. sudo systemctl set-default graphical.target
【拓展】:
一、開機默認進入命令行模式
1、輸入命令:sudo systemctl set-default multi-user.target
2、重啟:reboot
要進入圖形界面,只需要輸入命令startx
從圖形界面切換回命令行:ctrl+alt+F7(有的是F1)
二、開機默認進入圖形用戶界面
1、輸入命令:sudo systemctl set-default graphical.target
2、 sudo vim /lib/systemd/system/getty@.service
將下面
ExecStart=-/sbin/agetty --noclear %I $TERM
改為
ExecStart=-/sbin/agetty -a (username) --noclear %I $TERM
#該步驟為命令行免密登錄,若是不需要,可不用該步驟
3、重啟:reboot
要進入命令行模式:ctrl+alt+F2
從命令行切換到圖形界面:ctrl+alt+F7(有的是F1)