1. 开机后以root身份自启动一个脚本,怎么设置
嵌入式 Linux 如何以root身份自动登录 并开机自动执行脚本文件
下面操作步骤记录如下:
要设置自启动程序需要解决两个问题:1、系统自动登录;2、自动执行脚本,
1)系统自动登录
(1)修改/etc/inittab
在inittab中,有如下配置
1:2345:respawn:/sbin/agetty tty1 9600
2:2345:respawn:/sbin/agetty tty2 9600
3:2345:respawn:/sbin/agetty tty3 9600
4:2345:respawn:/sbin/agetty tty4 9600
5:2345:respawn:/sbin/agetty tty5 9600
6:2345:respawn:/sbin/agetty tty6 9600
表示系统可以有六个控制台,可以用ALT+(F1~F6)来切换。而/sbin/agetty就是一个登陆验证程序,执行它,会提示用户输入用户名和密码,然后启动一个指定的shell(在passwd文件中指定的)。
所以,我们只需将其修改为不执行agettty,而是执行自己编写的一个脚本,就可以跳过用户名和密码的输入。修改如下:
1:2345:respawn:/root/logintest tty1 9600
这里我在/root/下放了一个测试脚本,这样系统启动时就会执行那个脚本,脚本内容:
#!/bin/sh
/bin/login -f root
脚本其实就是执行了一个root用户的登陆而已。
2)自动执行程序
方法有两种,一种是将要执行的代码放到1)中的/root/logintest的后面;
另一种是将要执行的代码放到/etc/profile文件的后面即可。
2. Ubuntu20.04开机运行自定义脚本
基于 Debian 的 Linux 系统默认支持 rc-local.service 服务,这个服务主要用来在系统启动时运行用户自定义的脚本命令等。
要想使用 rc-local.service 服务在系统启动时运行用户自定义的脚本命令,首先需要在 /etc 目录下创建 rc.local 文件(若已创建则跳过创建)并修改可执行权限,然后设置该服务开机自启:
打开 /etc/rc.local 文件,往其中添加运行自定义脚本的命令即可。
【注】 /etc/rc.local 以及自定义脚本中都不能使用系统变量(比如 $HOME ,原因在于其执行自定义脚本时并没有继承系统变量)。
此时会显示开机自启执行脚本的输出结果。
3. linux设置开机自启动脚本的最佳方式
最简单粗暴的方式直接在脚本 /etc/rc.d/rc.local (和 /etc/rc.local 是同一个文件,软链)末尾添加自己的 脚本
然后,增加脚本执行权限
第二种方式是在crontab中设置
也可以设置每次登录自动执行脚本,在 /etc/profile.d/ 目录下新建sh脚本,
/etc/profile 会遍历 /etc/profile.d/*.sh
另外,几个脚本的区别:
(1) /etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置。
(2) /etc/bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取(即每次新开一个终端,都会执行bashrc)。
(3) ~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次。默认情况下,设置一些环境变量,执行用户的.bashrc文件。
(4) ~/.bashrc: 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。
(5) ~/.bash_logout: 当每次退出系统(退出bash shell)时,执行该文件. 另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承 /etc/profile中的变量,他们是”父子”关系。
(6) ~/.bash_profile: 是交互式、login 方式进入 bash 运行的~/.bashrc 是交互式 non-login 方式进入 bash 运行的通常二者设置大致相同,所以通常前者会调用后者。
4. Ubuntu 设置程序双击启动和sh脚本开机自启动的另一种方法
系统 : Ubuntu16.04 LTS
在ubuntu下面开发的Qt程序,进行动态发布之后有两个问题:
在home中搜索Terminal,找到后拖到桌面上。
在Terminal图标上邮件——Properties,然后在Command那一栏中填入以下指令:
例如:
还可以顺便给它换个图标,点击哪个图标就可以更换了,支持png格式图片,可以去 阿里巴巴矢量图库 找一个.
然后关掉窗口,双击图标就可以运行脚本了。记得提前赋予脚本可执行权限。
之前一篇的自启动方法有点问题,下面的方法实测没有问题。
在home搜索: start
打开它:
点击add,中间那一栏填上面的那个指令,另外两栏随便填:
保存就可以了。
重启电脑,就会自动运行,不能运行来找我,我帮你再网络网络……嘿嘿嘿
5. Linux Ubuntu 20.04 —添加开机启动(服务/脚本)
本文章向大家介绍Linux Ubuntu 20.04 —添加开机启动(服务/脚本),主要包括Linux Ubuntu 20.04 —添加开机启动(服务/脚本)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
系统启动时需要加载的配置文件
一、修改开机启动文件:/etc/rc.local(或者/etc/rc.d/rc.local)
二、自己写一个shell脚本
将写好的脚本(.sh文件)放到目录 /etc/profile.d/ 下,系统启动后就会自动执行该目录下的所有shell脚本。
三、通过chkconfig命令设置
四、自定义服务文件,添加到系统服务,通过Systemctl管理
1.写服务文件:如nginx.service、redis.service、supervisord.service
2.文件保存在目录下:以754的权限。目录路径:/usr/lib/systemd/system。如上面的supervisord.service文件放在这个目录下面。
3.设置开机自启动(任意目录下执行)。如果执行启动命令报错,则执行:systemctl daemon-reload
4.其他命令
5.服务文件示例:
6. 开机自启脚本
电脑或服务器开机都会有一些需要启动的程序,每次都需要一个一个点击启动,耗时耗力,还有可能漏启动。所以添加一个开机自启的脚本,脚本中帮我们打开需要启动的程序,如Snipaste、FRP客户端等。
修改 /etc/rc.local 文件,添加启动服务的命令
先写好启动脚本或者启动命令,事先保证启动脚本或命令能正常启动服务,然后将脚本路径或启动命令添加至/etc/rc.local文件中,这个方法适合比较简单的shell脚本。
创建脚本myservice,写入
将脚本放到/etc/init.d或/etc/rc.d/init.d目录下,并添加脚本为服务
输入如下命令调用myservice服务,然后查看/tmp下的test.txt文件发现已经写入了日期。
将myservice服务设置为开机自启
查看服务是否开机启动
重启服务器,就会执行 systemctl start myservice 命令和 rc.local 中的命令。
编辑脚本
根据实际情况修改Service中的User和ExecStart的属性,然后将将本放到 /usr/lib/systemd/system/node_exporter.service 路径下。
设为开机自启动
systemctl enable node_exporter.service
会将文件路由到 /etc/systemd/system/multi-user.target.wants/ 目录下
可以通过如下命令查看日志信息
journalctl -u node_exporter -n 10 -f
7. ubuntu 设置开机自启
比如以前启动 mysql 服务用:
现在用:
systemd 默认读取 /etc/systemd/system 下的配置文件,该目录下的文件会链接/lib/systemd/system/下的文件。
执行 ls /lib/systemd/system 你可以看到有很多启动脚本,其中就有我们需要的 rc.local.service
打开脚本内容:
可以看出,/etc/rc.local 的启动顺序是在网络后面,但是显然它少了 Install 段,也就没有定义如何做到开机启动,所以显然这样配置是无效的。 因此我们就需要在后面帮他加上[Install] 段:
这里需要注意一下,ubuntu-18.04 默认是没有 /etc/rc.local 这个文件的,需要自己创建
写入以下内容:
然后把你需要启动脚本写入 /etc/rc.local ,我们不妨写一些测试的脚本放在里面,以便验证脚本是否生效.
做完这一步,还需要最后一步 前面我们说 systemd 默认读取 /etc/systemd/system 下的配置文件, 所以还需要在 /etc/systemd/system 目录下创建软链接
给rc.local加上权限
启用服务
启动服务并检查状态
接下来,重启系统,然后看看 /usr/local/text.log 文件是否存在就知道开机脚本是否生效了。检查test.log文件
8. windows设置开机自启动脚本
Windows系统想要快速设置开机自动启动某个程序,可以使用以下几种方法设置:
第一种:设置启动项
1.找到启动文件夹,我的是C:\Users\ThinkPad\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup,或者打开运行,输入shell:startup,回车,也可以快速打开启动文件夹。
2.拷贝需要开机启动的程序的快捷方式到此文件夹即可。
3.打开任务管理器-启动查看启动项。
这样就设置好了,下次计算机启动时,程序也会自动启动的。
第二种:使用计划任务自启动
1.新建文本文件DebugStart.txt,打开写入以下内容:
tasklist|find /i "authSender.exe" && echo started || start "" "D:\Debug\authSender.exe"。
这条语句不能换行, authSender.exe 是程序名, "D:\Debug\authSender.exe"是此程序所在路径,tasklist|find /i "authSender.exe"是判断进程是否存在,程序是否已经开启,如未开启才会启动程序,然后改后缀名 .txt 为 .bat,双击即可启动程序。(可以在每条语句前使用 :: 来注释一条语句),这种方法还可以批量启动不同程序,只需要在此文件中重启一行,按相同格式写第二个要启动的程序对应的语句即可。
2.进入任务计划程序窗口,创建任务。
接着选择触发器选项卡,选择新建,在第一栏开始任务处选择登录时(启动时开始任务需要管理员权限)或启动时(启动时开始任务需要管理员权限),点击确定。由于我们的 bat脚本有做判断,所以不用担心程序会启动多次。
在操作选项卡选择新建,并选择启动程序选项,以及在程序和脚本处选择刚才编写的.bat程序,点击确定,然后再点击确定(创建任务界面的确定)。
关闭页面,即可做到开机自动启动程序。
第三种:通过组策略设置脚本随服务器启动
1.开始->运行->gpedit.msc->计算机配置->Windows设置->脚本(启动/关机)。其中Win10有很多版本,其中家庭版默认是不提供组策略功能,如果需要给win10的家庭版添加组策略的功能,可以参考https://blog.csdn.net/lwpkjio/article/details/85236808。
2.添加启动脚本,点击确定。
这样就可以了。
第四种:添加服务自动运行
1.开始---运行---cmd---回车,在弹出的窗体中输入如下命令:
sc create Debug binPath= D:\Debug\authSender.exe start= auto,其中Debug为将要创建的服务名。要删除创建的服务也很简单,使用以下命令即可:sc delete ServiceName
2.打开控制面板---管理工具---服务(或者 开始---运行---services.msc---确认)打开服务管理器,看看你创建的服务已经在里面了,至此,服务运行已创建完成。