日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Ubuntu >内容正文

Ubuntu

bash 脚本中激活conda环境_ubuntu18.10目标检测算法环境部署+开机自启动脚本创建screen下的web服务...

發布時間:2025/3/20 Ubuntu 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 bash 脚本中激活conda环境_ubuntu18.10目标检测算法环境部署+开机自启动脚本创建screen下的web服务... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

內容概要

  • cuda+cudnn+python環境安裝

  • ubuntu18的開機自啟動腳本

  • screen服務開啟

以我個人的實踐來看,把python開發的算法封裝成webserver的服務供前端程序調用是個不錯的方案,解決了不同語言直接做接口的復雜性,同時后期的運營、維護、監控也比較方便。但是python的環境部署確實比較麻煩的,一兩臺機器還行,大規模部署的話幾十上百臺機器想想就頭大,正規的做法是用docker,這里先撇開不談。但其實條件允許的話,可以在一臺機器上部署環境,然后將系統鏡像用systemback打包,再安裝到其他機器,新環境的部署就簡單了,裝完系統,環境就ok了,再配上開機自啟動的算法服務,簡直完美(ubuntu18親測有效)。

cuda+cudnn+python環境安裝

安裝文件自行下載,這里提供我的安裝包供參考鏈接:https://pan.baidu.com/s/1WShQSF94iQYPwNX4kwle6A
提取碼:slqs

安裝cuda環境網上教程非常多,這里不再贅述。需要注意cuda和cudnn版本匹配,顯卡驅動版本、以及gcc版本需注意。下面以cuda10.1+cudnn7+nvidia驅動440+Anaconda3-5.2.0為例,列舉下可能的操作:

  • 卸載之前存在的cuda或驅動

sudo /usr/bin/nvidia-uninstall
sudo apt-get purge nvidia*
  • 安裝驅動

編輯:
sudo nano /etc/modprobe.d/blacklist.conf
加入:
blacklist nouveau
options nouveau modeset=0
Ctrl+O保存,Ctrl+X退出
sudo update-initramfs -u
最好重啟下
lsmod | grep nouveau 無輸出即可
  • gcc/g++降級

apt-get install gcc-7 g++-7

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 100
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 50
sudo update-alternatives --config gcc命令查看gcc的默認版本
  • 安裝cuda

chmod +x cuda_10.1.168_418.67_linux.run
sudo ./cuda_10.1.168_418.67_linux.run
進入界面后 空格取消驅動安裝選項
等待安裝完成
設置環境變量:
sudo nano ~/.bashrc
export CUDA_HOME=/usr/local/cuda-10.1
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64
export PATH=${CUDA_HOME}/bin:${PATH}
Ctrl+O保存
source ~/.bashrc 使生效
輸入nvcc -V驗證

-cudnn安裝

sudo dpkg -i libcudnn7_7.6.5.32-1+cuda10.1_amd64.deb
deb解壓安裝即可,壓縮包的話需要拷貝文件到對應的cuda文件夾
  • Anaconda安裝

這里需要注意,如果是安裝在用戶目錄下,打包鏡像安裝到其他機器上會導致python無法使用,因為用戶名是寫死在環境變量中了。建議安裝在非用戶目錄,我這里安裝路徑是/usr/local/anaconda3 供參考。
sudo sh Anaconda3-5.2.0-Linux-x86_64.sh

anaconda和cuda環境變量

ubuntu18的開機自啟動腳本

這部分走了不少彎路,主要是想自啟動腳本里能實現在創建的screen下開啟算法服務,這樣的話后期監控,直接screen -r name進入查看即可,而且是真后臺運行,各種優點吧。實現過程中遇到了不少問題,如conda虛擬環境無法進入、環境變量未激活、啟動腳本不執行等。好在最終解決,這里直接給出可行方案:

  • 編輯自啟動服務
    由于該系統沒有自帶其他linux版本自帶的rc.local文件的開機自啟動方法,所以要自己生成rc.local文件。
    先編輯rc-local.service:

sudo nano /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


然后編輯rc.local:
sudo nano /etc/rc.local
寫入:
#!/bin/bash
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
source ~/.bashrc
sh /home/online_stagex/auto_start/start.sh > /dev/null 2>&1 &
exit 0

最后執行:
sudo chmod +x /etc/rc.local
sudo systemctl enable rc-local
sudo systemctl start rc-local.service
sudo systemctl status rc-local.service

rc-local.service文件

rc.local

其中,start.sh是開機自啟動腳本,前面的路徑是存放位置,記得加上可執行權限。chmod +x

screen服務創建及服務的開啟

在自啟動腳本start.sh中定義了,啟動要干的事情,這里面寫的是創建screen并開啟服務的過程。

創建screen

需要說明的是自啟動腳本是root用戶下執行的,創建的screen也是在root下面,查看需要sudo screen -ls指令。創建的screen在sh環境下,需要使能環境變量source ~/.bashrc否則無法使用py環境。發送到screen的指令太長的話可以重新寫個腳本。

st_8381.sh

上面的腳本就是最終執行python代碼的指令,在web_start_8381.py中封裝了算法服務。
重啟測試,服務開起來了,log里也有日志,進入到screen有算法后臺輸出,完美!

screen

nvidia-smi查看gpu進程

總結

以上是生活随笔為你收集整理的bash 脚本中激活conda环境_ubuntu18.10目标检测算法环境部署+开机自启动脚本创建screen下的web服务...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。