ubuntu16.04设置开机自启服务
网上说了开机自启有许多种方法:
1.最简单的是:在/etc/rc.local的exit 0前面加上你启动服务的脚本文件路径
注:这个脚本文件应写绝对路径!
2.网上:修改rc.local开头的#/bin/sh -e 修改为#/bin/bash ...
3.网上:加上sleep时间,让其他程序先加载 ...
4.网上:cd /etc/systemd/system/,创建xx.service方法启动 ...
5.网上:查看SHELL,将/bin/sh (输出dash) 改为/bin/sh (输出bash) ...
.... 启动的方法有很多,可能对你们来说会有用,我选择最简单的将服务启动脚本放在了rc.local中启动。
(先说一下我的flask服务内容:我的flask内容是需要加载模型文件做出预测,启动服务需要初始化CUDA,否则会报错,从而导致服务起不来,这也是一直困扰我很多天的关键问题所在)
我将我的启动服务脚本文件放在了rc.loca中:
- #!/bin/sh -e
- #
- # 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.
- export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.0/lib64
- export PATH=$PATH:/usr/local/cuda-10.0/bin
- export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-10.0
- export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/extras/CUPTI/lib64
- sleep 7
- cd /home/tf-serving/flaskFiles/modelFlask
- /home/tf-serving/flaskFiles/modelFlask/run.sh
- exit 0
如果说你们正常的服务不需要初始化什么文件或者其他的东西,就直接将启动服务的脚本文件放在exit 0 上面,开机就自动启动了,但是我这个服务需要初始化CUDA的环境变量;
其实这4行初始化CUDA的环境变量在/etc/profile全局变量文件中写过了,之所以又在启动文件中在写一遍,原因是:查看了一下rc.local文件的启动级别数字较小,说明服务器开机的时候较先执行;
由于较先执行,所以还没来得及执行/etc/profile下的环境,就先执行rc.local了,所以会报错(报错是因为加载tensorflow-gpu时,没有找到CUDA,会报版本错误的问题);
然后找错误原因,将打印信息重定向到一个日志文件中:(这三行写在rc.local文件中,主要是导出test.log,查看错误以及没有执行的信息~)
- sleep 7
- cd /home/tf-serving/flaskFiles/modelFlask
- /home/tf-serving/.pyenv/versions/env-3.6.4/bin/gunicorn -b 127.0.0.1:9999 app:app > /home/test.log 2>&1
总的来说还是因为服务器开机执行的优先级问题!!这个问题困扰了我好几天,还好总算是解决了,谢天谢地。
ubuntu16.04设置开机自启服务的更多相关文章
- ubuntu18.04设置开机自启Django
设置开机自启: rc-local.server [Unit] Description=/etc/rc.local Compatibility ConditionPathExists=/etc/rc.l ...
- 如何管理linux开机自启服务
如何管理linux开机自启服务? 自启动服务非常重要,例如 (1)需要手动添加希望自启的服务,如安装svn后没有自动添加,就需要我们手动加入(2)安装某些程序后,自动加到自启动了,但我们不需要,需要手 ...
- Linux(CentOS6.5)下Nginx注册系统服务(启动、停止、重启、重载等)&设置开机自启
本文地址http://comexchan.cnblogs.com/ ,作者Comex Chan,尊重知识产权,转载请注明出处,谢谢! 完成了Nginx的编译安装后,仅仅是能支持Nginx最基本的功能, ...
- ubuntu-18.04 设置开机启动脚本
ubuntu-18.04 设置开机启动脚本 参阅下列链接 https://askubuntu.com/questions/886620/how-can-i-execute-command-on-sta ...
- redis设置开机自启
开机自启动redis(其他服务类似) centos 7以上是用Systemd进行系统初始化的,Systemd 是 Linux 系统中最新的初始化系统(init),它主要的设计目标是克服 sysvini ...
- Centos7安装elasticsearch6.3及ik分词器,设置开机自启
参考Elasticsearch 在CentOs7 环境中开机启动 建议虚拟机的内存大小为4G 1. 新建一个用户john 出于安全考虑,elasticsearch默认不允许以root账号运行. 创建用 ...
- TX2开发板Ubuntu16.04设置静态IP
TX2开发板Ubuntu16.04设置静态IP https://www.cnblogs.com/qilai/p/11285445.html 首先打开一个Terminal输入 ifconfig 查看自 ...
- Centos 7 redis、tomcat、Spring Boot添加开机自启服务
一.redis添加开机自启 1.添加服务配置文件 [root@test system]# vim /etc/systemd/system/redis-server.service 2.服务配置文件内容 ...
- centos7安装docker并设置开机自启以及常用命令
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何 ...
随机推荐
- 感叹号在Linux bash中使用技巧
1. 重复执行上一条指令 !! [root@iZ23t6nzr7dZ python]# ls /usr/local/ aegis bin etc games include lib lib64 li ...
- 简单Arp欺骗
title date layout tags 简单arp欺骗 2018-05-08 post Python #-*- coding:utf-8 -*- from scapy.all import Et ...
- Qt Sleep、QCoreApplication::processEvents()(最佳的平衡:一边发送消息,一边睡眠)
sleep()//秒 msleep()//毫秒 usleep()//微秒 以前为了模拟鼠标点击用过这些函数,可以让进程中断,今天发现我原来的做法其实不对.这组函数会将你当前的线程/进程变为“睡眠”状态 ...
- FP-Grow树
序言 FP-growth(Frequent Pattern Tree, 频繁模式树),是韩家炜老师提出的挖掘频繁项集的方法,是将数据集存储在一个特定的称作FP树的结构之后发现频繁项集或频繁项对,即常在 ...
- 规范化开发和time相关模块
1. 规范化开发 如果在开发的过程中将所有的程序放在一个py文件中,加载时会很慢,同时降低了代码的可读性,查询起来也麻烦 所以要将一个oy文件合理的分成多个py文件,在blog大目录下分为以下几个部分 ...
- 认识shell
博主本人平和谦逊,热爱学习,读者阅读过程中发现错误的地方,请帮忙指出,感激不尽 认识shell 一.由来 第一个流行的 shell 是由 Steven Bourne 发展出来的,为了纪念他所以就称为 ...
- springboot学习笔记:2.搭建你的第一个springboot应用
1.开发环境 (推荐):jdk1.8+Maven(3.2+)+Intellij IDEA+windows10; 说明: jdk:springboot官方说的很明确,到目前版本的springboot(1 ...
- 抽样分布|t分布|中心极限定理|点估计|矩估计|最大似然法|
生物统计与实验设计-统计学基础-2&区间估计-1 正态分布参数:均值和方差 其中,选择1d是因为好算:通常,95%区分大概率事件和小概率事件, 当总体是正态分布时,可以利用常用抽样分布估计出样 ...
- motionbuilder安装未完成,某些产品无法安装的解决方法
motionbuilder提示安装未完成,某些产品无法安装该怎样解决呢?,一些朋友在win7或者win10系统下安装motionbuilder失败提示motionbuilder安装未完成,某些产品无法 ...
- Nginx笔记总结九:Nginx日志配置
ngx_http_log_module用来定义请求日志格式1. access_log指令 语法: access_log path [format [buffer=size [flush=time] ...