Linux配置开机自启动的多种方式小节


Linux 守护进程的启动方法
Systemd 入门教程 命令
Systemd 入门教程:实战篇

/etc/rc.local

  • 将启动命令直接放到这个文件中
    https://blog.csdn.net/u013401853/article/details/71079595

systemctl 添加开机启动服务

  • 首先创建一个针对于某个应用的开启启动服务
  • 然后在服务文件中配置 start/stop/restart/的对应脚本
  • 将服务程序和脚本文件放到响应的位置
  • 开启开机自启服务,关闭或者暂停服务

下面以编写一个开机自启动的ROS launch文件为例

step1 创建 服务 ros_startup.service

mkdir scripts
touch ros_startup.service

## ros_startup.servicede的内容
[Unit]
Description=powerOn startup ros
 
[Service]
Type=simple
Restart=always
RestartSec=30
ExecStart=/usr/sbin/ros_start 
ExecStop=/usr/sbin/ros_stop
ExecRestart=/usr/sbin/ros_restart
 
[Install]
WantedBy=multi-user.target

## Unit 服务的描述
## Service是最关键的部分
	## Type =simple 启动程序后,常驻内存中(区别于oneShut)
	## 30s后会自动重启
	## 后面指定服务的启动、结束、重启的脚本
## Install:需要将该unit安装到哪个target上

step2 创建 服务启动、结束脚本

##ros_start
#!/bin/bash
source /opt/ros/kinetic/setup.bash
source /home/nvidia/catkin_ws/devel/setup.bash 

roslaunch ydlidar lidar.launch 
exit 0
----------
##ros_stop
#!/bin/bash
source /opt/ros/kinetic/setup.bash
source /home/nvidia/catkin_ws/devel/setup.bash
 
for i in $(rosnode list);do
    rosnode kill $i;
done
 
killall roslaunch 
exit 0
----------
## ros_restart
/usr/sbin/ros_stop
sleep 3
/usr/sbin/ros_start
exit 0

step3 将脚本和服务放到合适的位置

## 为了方便省事,也可以将其放到一个脚本文件中
## Install_service.sh
sudo cp ros_start /usr/sbin/
sudo cp ros_stop /usr/sbin/
sudo cp ros_restart /usr/sbin/
 
sudo cp ros_startup.service /lib/systemd/system/
 
sudo systemctl enable ros_startup.service
exit 0

step4 查看、启动和暂停 开机自启服务

  • systemctl is-enabled ros_startup.service 查看服务是否已经启动
  • sudo systemctl stop ros_startup.service 暂停服务(下次重启后还会继续自启动)
  • sudo systemctl start ros_startup.service 开始服务
  • sudo systemctl disable ros_startup.service 失能服务(重启后,不会自启动了)
  • sudo systemctl enable ros_startup.service 使能服务
  • sudo journalctl --unit ros_startup.service 查看服务日志

step5 删除自启动服务

## 如果不想再使用这个开机自启服务,可以创建一个脚本文件删除它
## uninstall_ros_service.sh  跟Install_service.sh相对应
#!/bin/bash
/usr/sbin/ros_stop
sudo systemctl disable ros_startup.service
 
sudo rm /usr/sbin/ros_start
sudo rm /usr/sbin/ros_stop
sudo rm /usr/sbin/ros_restart
 
sudo rm /lib/systemd/system/ros_startup.service
 
exit 0


supervisor

Supervisor: A Process Control System
Supervisord是一个守护进程的工具,当进程意外终止或服务器掉电起来后,希望进程能够自动运行,supervisord可以很好的为我们做这件事情。同时supervisord也自带监控界面,可以通过浏览器灵活的查看、操作。
 
supervisor管理进程,是通过fork/exec的方式将这些被管理的进程当作supervisor的子进程来启动,所以我们只需要将要管理进程的可执行文件的路径添加到supervisor的配置文件中就好了。此时被管理进程被视为supervisor的子进程,若该子进程异常中断,则父进程可以准确的获取子进程异常中断的信息,通过在配置文件中设置autostart=ture,可以实现对异常中断的子进程的自动重启。

安装supervisor

sudo apt-get install supervisor

配置 supervisor

##/etc/supervisor
## 有 supervisord.conf配置文件 和 conf.d 文件夹目录
## 文件结尾有
[include]
files = /etc/supervisor/conf.d/*.conf

## 所以要想用supervisor管理自己的应用程序,只需要在conf.d文件夹中增添配置文件即可

这里以想让系统自启动几个 Python程序为例

cd /etc/supervisor/conf.d/
recive_hex_data_and_save_inDB.conf  recive_json_data_from_server.conf
//文件内容
[program:recive_hex_data_and_save_inDB]
directory = /var/lib/cloud9/BBB
command = /usr/bin/python recive_hex_data_and_save_inDB.py
priority=1
numprocs=1
autostart=true
autorestart=true

开启 关闭supervisor的服务

  • supervisord -c supervisor.conf 通过配置文件启动supervisor
  • supervisorctl -c supervisor.conf status 查看状态
  • supervisorctl -c supervisor.conf reload 重新载入配置文件
  • supervisorctl -c supervisor.conf start [all]|[x] 启动所有/指定的程序进程
  • supervisorctl -c supervisor.conf stop [all]|[x] 关闭所有/指定的程序进程
  • sudo supervisorctl start program-name

crontab -e 定时任务

  • 使用 crontab -e 编辑定时启动任务
  • 适合执行按照一定频率执行的定时任务 (比如定时更新,定时清理回收站等)
  • 可以按分钟、小时、天、月、周来设定定时任务的执行频率
  • 如果是python脚本,可以先指定 conda环境等等
## 指令形式
分钟 小时 天 月 周 command

## 每分钟更新一下天气状况,并写到文件中
* * * * * /home/kiosk/anaconda3/envs/Scrapy/bin/python3 /home/kiosk/PycharmProjects/Scrapy/Weather/weather.py >> /home/kiosk/PycharmProjects/Scrapy/Weather/we

* * * * *       ##每分钟 
分钟   小时     天     月      周
*/2    *        *      *       *   ##每两分钟
*    08-17      *      *       *  ##每天早上8点-下午5点每分钟
*    08-17     1,15    *       *  ##每月1号和15,早上8-下午5 每分钟
*    08-17     1,15    3       *  ##三月的1号和三月的15,早上8-下午5 每分钟
*    08-17     1,15    3       5  ##三月的1号和三月的15,以及每个周5,早上8-下午5 每分钟
0-59  0,23     1,31   1,12    0,7 ##0和7都表示星期天
30     7         8     4       2  ##   4月8号的7.30,以及每个周二的7.30
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,关于Linux中FTP配置实训的小节,我可以给你一些简要的介绍。 在实际操作中,配置FTP服务器需要进行以下步骤: 1. 安装vsftpd软件:可以使用命令行工具(如apt-get、yum等)安装。 2. 配置vsftpd.conf文件:该文件是vsftpd的主要配置文件,可以在其中设置FTP服务器的参数,如允许的用户,允许的IP地址等。常见的配置包括: - 匿名用户访问:可以设置是否允许匿名用户访问FTP服务器。如果允许,需要设置匿名用户的目录。 - 本地用户访问:可以设置允许哪些本地用户访问FTP服务器,以及这些用户的目录。 - PASV模式:FTP服务器默认使用主动模式,但是在某些情况下需要使用PASV模式。可以在vsftpd.conf文件中设置PASV模式相关的参数。 3. 启动vsftpd服务:可以使用命令行工具(如systemctl)启动vsftpd服务。 4. 配置防火墙规则:如果系统中开启了防火墙,需要配置相应的规则,以允许FTP服务的访问。 在实际操作中,需要注意以下几点: - 在配置vsftpd.conf文件时,需要注意语法的正确性。可以使用命令行工具(如vim)编辑该文件。 - 在启动vsftpd服务之前,需要保证vsftpd.conf文件的配置已经完成。 - 在配置防火墙规则时,需要注意FTP服务使用的端口号,通常为20和21端口。 以上是关于Linux中FTP配置实训的一些简要介绍,如果需要更详细的信息,可以参考相关的文档或教程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一銤阳光

希望分享的内容对你有帮助

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值