CI 之旅 (三)设置开机启动

一)需求

部署多块开发板时候,需要开机设置ip,启动vnc,ntp时钟同步,以及运行一系列daemon,这些都要在开机时候启动,所以引入该需求

二)多种开机自启动的方法

1.配置/etc/rc.local

在文件末尾(exit 0之前) 增加自己配置

不用赘述,缺点是有时候启动不了

2.service

3. chkconfig

chkconfig --add c.sh #加到开机自动启动列表
chkconfig c.sh on  #启动后永久生效

有些开发板没有此功能,暂时不赘述

4. 编辑/etc/fstab

 

Device   Mount point   filesystem   parameters  dump   check

# <file system> <mount point>             <type>          <options>                               <dump> <pass>
/dev/root            /                     ext4           defaults                                     0 1
/dev/nvme0n1      /home/ac/Share           ext4           defaults                                     0 0

5.crontab

crontab -e 命令会打开编辑器,自己可以在其中编辑需要启动的定时命令等。会在/var/spool/cron/crontabs/下生成对应的当前用户名文件.以下例子是设置开机10s启动脚本。crontab启动的脚本不会使用bah的环境变量等,要手动配置

# m h  dom mon dow   command
@reboot ( sleep 10 ; sh /home/linda/a.sh )

bashrc中:最后一行增加
eval "$RUN_AFTER_BASHRC"

a.sh:
#!/bin/sh 
#vncserver
#bash -c "/usr/bin/vncserver"
#gnome-terminal -x bash -c '/usr/bin/vncserver; exec bash'
#gnome-terminal -x bash -c 'export RUN_AFTER_BASHRC="/usr/bin/vncserver" ;exec bash'
bash -c '/usr/bin/vncserver'





6. 在终端桌面配置:开机桌面启动terminal+bashrc启动方式

Create a terminal.desktop in /etc/xdg/autostart/ .

[Desktop Entry]
Name=LXTerminal
Type=Application
Exec=lxterminal
Terminal=false

这是开机启动LXTerminal的终端

如要在开机之后自动启动vnc的话,还需要编辑bashrc文件,如

cd /home/user/
source /home/linda/user.sh

#! /bin/sh
ps aux|grep Xvnc4|grep -v grep > /dev/null
if [ $? -ne 0 ]
then
echo "start process....."
bash -c "/usr/bin/vncserver"
else
echo ""
fi

三)引申出需求:

1. vnc 启动的时候,自动启动多个终端,然后分别运行不同程序

方法:配置~/.vnc/xstartup

eg:

gnome-terminal -x bash -c "cd /home/linda;. start.sh; bash  " &
gnome-terminal -x bash -c 'python manage.py; exec bash'
gnome-terminal -x bash -c 'cd /home/user/my_git;  export RUN_AFTER_BASHRC="sh test.sh"  ;exec bash'

2.自动配置ip地址

方法一)编辑/etc/rc.local,

存在问题:1)有时候开机配置不上,有待后续查明原因

                     2)只针对单一有线网卡能识别的情况下配置,多网卡,或者网卡用ifconfig识别不出等情况有待后续

	nic=$(ifconfig | grep  "Link" | awk '{print $1}'| grep -v 'lo\|wlan0\|inet6')
	echo "password" | sudo -S sudo ifconfig $nic  192.168.1.102 netmask 255.255.255.0
	exit 0

方法二)对应在界面上用手动配置固定网卡的固定ip

存在问题:1)存在网卡更换需要重新配置的问题

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值