ubuntu配置开机自启动(非.bashrc)

现有的一些开机自动运行方法存在一些缺陷:

  1. 在.bashrc中添加运行命令会导致每次连接新的终端都会运行程序;同理,在/etc/profile.d/目录中存放sh脚本亦会如此;
  2. ubuntu16及以上版本中,已无 rc.local。

而本文所介绍的方法比较方便且没有以上问题。

一 、创建脚本

sudo vim /etc/systemd/system/xxx.service

xxx是你给自己服务自定义的名字。

文件内容如下:

[Unit]
Description=xxx
[Service]
Type=simple
PIDFile=/run/xxx.pid
ExecStart=/脚本路径/xxx.sh
ExecReload=/bin/kill -SIGHUP $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID

[Install]
WantedBy=multi-user.target graphical.target

二、赋予要执行的脚本权限

chmod +x /脚本路径/xxx.sh

三、执行命令

# 修改service文件之后需要刷新Systemd
sudo systemctl daemon-reload

# 使xxx开机自启
sudo systemctl enable xxx 

# 剩下的命令看需要使用
# 启动xxx
sudo service xxx start 

# 重启xxx
sudo service xxx restart

# 停止xxx
sudo service xxx stop 

# 查看xxx的运行状态 
sudo service fsm status

# 查看程序的输出
journalctl -fu xxx

四、一些注意事项

1、一些脚本中的命令依赖于用户环境

例如,我有一个python程序需要在nju用户的conda环境中运行,那么在编写脚本的时候要直接指定绝对路径中的python,这样才能用那个环境来运行:

/home/nju/.conda/envs/yolo/bin/python xxx.py

此外,python程序中不少地方要用到相对路径,那么在运行py脚本的时候,建议先cd到py脚本所在目录,再运行,附上一个python程序自启动脚本的示例:

#! /bin/bash
cd /home/nju/battlefield/
/home/nju/.conda/envs/yolo/bin/python FSM.py

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值