Try   HackMD

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