# Ubuntu開機自動啟動虛擬環境及程式 VM或Server有時會因不明原因自行關閉並重啟,藉由設定自動運行腳本,以便重啟後能自動開啟所需程式。以下採用`Ubuntu`做說明,該處不推薦`Windows`,因重啟後會停在使用者登入畫面,即便已設定自動進入桌面,還是需要等到使用者連線進VM後才能讓系統進入桌面。 --- ## 建立運行腳本sh #### Step 1. 建立腳本文件 ``` sudo vi ~/project_directory/example.sh ``` 寫入內容(激活虛擬環境並啟動程式,以anacona3為例) ``` source anaconda3資料夾路徑/etc/profile.d/conda.sh conda activate 虛擬環境名稱 cd ~/project_directory python xxx.py ``` 修改權限 ``` sudo chmod 755 ~/project_directory/example.sh ``` --- ## systemctl啟用rc.local服務 Ubuntu較新版本可能沒有`/etc/rc.local`,如有可直接啟用服務,否則需手動創建 ### 手動創建 #### Step 1. 建立systemd服務 ``` sudo vi /etc/systemd/system/rc-local.service ``` 寫入內容(相關設定) ``` [Unit] Description=/etc/rc.local Compatibility ConditionPathExists=/etc/rc.local [Service] Type=forking ExecStart=/etc/rc.local start TimeoutSec=0 StandardOutput=tty RemainAfterExit=yes SysVStartPriority=99 [Install] WantedBy=multi-user.target ``` #### Step 2. 建立rc.local文件 ``` sudo vi /etc/rc.local ``` 寫入內容(自動運行腳本路徑) ``` #!/bin/bash ~/project_directory/example.sh ``` 修改權限 ``` sudo chmod 755 /etc/rc.local ``` #### Step 3. 啟用服務 ``` sudo systemctl enable rc-local ``` #### Step 4. 重新開機並確認是否正確啟動 ``` sudo systemctl status rc-local ``` --- ## Reference https://marsown.com/wordpress/how-to-enable-etc-rc-local-with-systemd-on-ubuntu-20-04/ --- ###### tags: `rc-local` `anaconda3`