Archlinux开机自动执行自己所写程序

为了让Archlinux开机自动执行自己所写程序,需要使用rc-local.service系统服务。搞了好久,终于弄成功了。特意记录下,以备后需。

第一步在/usr/lib/systemd/system/目录下新建rc-local.service文件

执行命令如下:

>/usr/lib/systemd/system/rc-local.service
rc-local.service文件修改如下:

[Unit]
Description="/etc/rc.local Compatibility"
ConditionPathExists=/etc/rc.local
After=network.target


[Service]
Type=forking
ExecStart=/etc/rc.local
TimeoutSec=0
#StandardInput=tty
RemainAfterExit=yes
SysVStartPriority=99

[Install]
WantedBy=multi-user.target
第二步使该文件生效:

systemctl enable rc-local.service
若之前开启过 rc-local.service该服务,则需要执行

systemctl reenable rc-local.service

第三步查看/etc/systemed/system/multi-usr.target.wants/rc-local.service文件

若内容如下,则第二步修改正确

[Unit]
Description="/etc/rc.local Compatibility"
ConditionPathExists=/etc/rc.local
After=network.target


[Service]
Type=forking
ExecStart=/etc/rc.local
TimeoutSec=0
#StandardInput=tty
RemainAfterExit=yes
SysVStartPriority=99

[Install]
WantedBy=multi-user.target

特别注意: 
#StandardInput=tty
前面一定要有# 否则无效。

第三步新建文件/etc/rc.local

>/etc/rc.local

第四步修改rc.local 权限

chmod +x /etc/rc.local
第五步生成测试文件   

[root@XBD etc]# nano /var/hellotest.cpp
hellotest.cpp 内容如下

#include
#include
int main()
{
        FILE *fp;
        fp=fopen("/var/hellotest.txt","w");
        fprintf(fp,"hello world\n");
        fclose(fp);

        return 0;
}
编译生成可执行文件:

[root@XBD var]# g++ hellotest.cpp  -o hellotest
查看生成可执行文件

Archlinux开机自动执行自己所写程序_第1张图片
第六步将要执行的文件写入 /etc/rc.local, 这一步之后rc.local内容如下:

#!/bin/bash
/var/hellotest
 注意第一行,一定要如上填写

第七步测试阶段:

重启前 /var/文件下的内容如下,并没有hellotest.txt


重启后,再次查看,/var/文件夹下内容如下:(已经生成hellotest.txt)
Archlinux开机自动执行自己所写程序_第2张图片

查看/var/hellotest.txt内容如下:



可见设置成功。

之后需要系统启动可执行文件时,只需在/etc/rc.local下加入可执行文件的路径即可。





你可能感兴趣的:(Archlinux,Archlinux,bash,开机自启动,rc.local)