linux 4.9下设置开机自启动程序
时间: 2023-12-02 07:05:33 浏览: 103
在Linux 4.9下设置开机自启动程序可以按照以下步骤进行操作:
1. 编写一个启动脚本,例如myscript.sh,将其保存在 /etc/init.d/ 目录下。
2. 添加可执行权限:`sudo chmod +x /etc/init.d/myscript.sh`
3. 创建符号链接到 /etc/rc*.d/ 目录下,使得在系统启动时会自动执行启动脚本。这里以运行级别3为例:
`sudo ln -s /etc/init.d/myscript.sh /etc/rc3.d/S99myscript.sh`
其中,“S99”表示启动顺序,数字越小越先执行,根据实际需要进行修改。
4. 重启系统,验证程序是否自动启动:`sudo reboot`
如果以上步骤操作正确,程序就会在Linux 4.9系统启动时自动运行。
相关问题
linux4.9下如何编写应用程序控制I2C
在Linux 4.9下,可以使用i2c-dev驱动程序来控制I2C总线。以下是一些基本步骤:
1. 安装i2c-tools: `sudo apt-get install i2c-tools`
2. 确认I2C总线是否已启用:`sudo i2cdetect -l`
3. 打开I2C总线设备文件:`sudo modprobe i2c-dev`,这会在/dev目录下创建i2c-N文件,其中N是总线号。
4. 用open()函数打开设备文件,使用ioctl()函数发送I2C信号。
以下是一些示例代码,用于向I2C设备写入和读取数据:
```c
#include <stdio.h>
#include <fcntl.h>
#include <linux/i2c-dev.h>
#include <unistd.h>
int main()
{
int file;
char *filename = "/dev/i2c-1"; // I2C总线1
int addr = 0x68; // I2C从设备地址
char buf[2];
if ((file = open(filename, O_RDWR)) < 0) {
printf("Failed to open I2C device.\n");
return 1;
}
if (ioctl(file, I2C_SLAVE, addr) < 0) {
printf("Failed to select I2C device.\n");
return 1;
}
// 写入数据
buf[0] = 0x00; // 寄存器地址
buf[1] = 0x12; // 数据
if (write(file, buf, 2) != 2) {
printf("Failed to write to I2C device.\n");
return 1;
}
// 读取数据
buf[0] = 0x00; // 寄存器地址
if (write(file, buf, 1) != 1) {
printf("Failed to write to I2C device.\n");
return 1;
}
if (read(file, buf, 1) != 1) {
printf("Failed to read from I2C device.\n");
return 1;
}
printf("Data read: 0x%x\n", buf[0]);
close(file);
return 0;
}
```
在以上示例代码中,我们使用了/dev/i2c-1作为I2C总线设备文件,选择了从设备地址0x68,写入了0x12到寄存器地址0x00,并读取了该地址的数据。如果一切正常,将会输出读取的数据。
linux 4.9启动脚本是
Linux 4.9的启动脚本可以是以下文件之一:
1. /etc/init.d/rc:这是Linux系统中最早的初始化脚本,它定义了系统的启动和停止过程中需要执行的所有操作。
2. /etc/rc.local:这是一个可选的启动脚本文件,它在系统启动过程中会被执行。该文件通常包含一些自定义的启动脚本,如启动某些服务或设置环境变量等。
3. /etc/systemd/system:如果Linux使用systemd作为初始化系统,那么启动脚本可以是在/etc/systemd/system目录下的任意一个.service文件。这些文件定义了systemd服务的配置信息和启动脚本。
4. /etc/rc.d/rc.local:这是Red Hat系列Linux系统中的启动脚本文件,与/etc/rc.local相似,也是一个可选的启动脚本文件。
根据你的Linux发行版和配置,可能会有其他的启动脚本文件。
阅读全文