ubuntu开机启动脚本
A. 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.服务文件示例:
B. 【tips】Ubuntu 两种开机自启动程序方式
个人制档链作的程序可以添加到开机自启动项中,简便一些流程,以下列出两种方式
方式一
卜蠢雹 第一种方式比较简单,通过Ubuntu 自带的Startup Applications即可添加,只要选中路径下的可执行文件即可。
方式二
通过Shell脚本+rc.local实现
step 01 创建一个脚本文件,比如起名为run_start.sh
step 02 修改rc.local文件,在exit 0之前添加执行脚本文件的命令
这两种方式,都会在开机时启动相应的程序。
当然,还有很多其他的启动三方程序型帆的方式,目前没有一一尝试,仅举两例。
C. Ubuntu 设置程序双击启动和sh脚本开机自启动的另一种方法
系统 : Ubuntu16.04 LTS
在ubuntu下面开发的敬升Qt程序,进行动态发布之后有两个问题:
在home中搜索Terminal,找到后拖到桌面上。
在Terminal图标上邮件——Properties,然后在Command那一栏中填入以下指令:
例如:
还可以顺便给它换个孙枯图标,点击哪个图标就可以更换了,支持png格式图片,可以去 阿里巴巴矢量图库则稿洞 找一个.
然后关掉窗口,双击图标就可以运行脚本了。记得提前赋予脚本可执行权限。
之前一篇的自启动方法有点问题,下面的方法实测没有问题。
在home搜索: start
打开它:
点击add,中间那一栏填上面的那个指令,另外两栏随便填:
保存就可以了。
重启电脑,就会自动运行,不能运行来找我,我帮你再网络网络……嘿嘿嘿
D. Ubuntu-18.04不能像ubuntu14一样通过编辑rc.local来设置开机启动脚本
ubuntu-18.04不能像ubuntu14一样通过编辑rc.local来设置开机启动脚本,通过下列简单设置后,可以使rc.local重新发挥作携州键用。
1、建立rc-local.service文件
sudo vi /etc/systemd/system/rc-local.service
2、将下列内容复制进rc-local.service文件
[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
[Install]
WantedBy=multi-user.target
3、创建文件rc.local
sudo vi /etc/rc.local
4、将下列内容复制进rc.local文件
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
echo "看到这行字,说明添加自启动脚本成功。辩巧迹宽" > /usr/local/test.log
exit 0
5、给rc.local加上权限
sudo chmod +x /etc/rc.local
6、启用服务
sudo systemctl enable rc-local
7、启动服务并检查状态
sudo systemctl start rc-local.service
sudo systemctl status rc-local.service
8、重启并检查test.log文件
cat /usr/local/test.log
E. ubuntu下,怎么设置开机启动项
对于安装Ubuntu系统和windows系统(windows xp、windows Vista、windows 7等)的电脑,一般安装完Ubuntu系统后,开机启动项默认为Ubuntu,小编就来分享如何将开机启动项改为windows系统,就不用去按键选择了。
本经验说明:
小编的这个建议只适合于10.10之前版本的ubuntu系统,后面的11.04,11.10。。。14.04系统因为采用的默认桌面不同,所以本经验不适用,若要使用,那么请安装GNOME桌面
方法/步骤
如图所示现在的开机启动项为Ubuntu系统,这里我们选择Ubuntu系统启动,进入Ubuntu系统,在Ubuntu系统里面修改
依次点击并打开“应用程序”----->“附件”----->“终端”
修改/boot/grub/grub.cfg文件的权限,图中所示的命令是改为任何人都可以读写执行,但一般不建议这样做,这里只是为了省事方便
用gedit 编辑软件打开grub.cfg文件
grub.cfg文件打开后如下图所示,我们就是这样这个文件中完成我们的设置
将 set default="0"改为set default="6",也就是我们第一步中所示的开机选项,修改完后保存退出。
7
重启电脑,这时我们看到的开机启动项已经是windows系统了
F. Ubuntu20.04开机运行自定义脚本
基于 Debian 的 Linux 系统默哗答认支持 rc-local.service 服务,这个服务主要用来在系统启动时运行用乱笑慧户自定义的脚本命令等。
要想使用 rc-local.service 服务在系统启动时运行用户自定义的脚本命令,首先需要在 /etc 目录下创建 rc.local 文件(若已创建则跳过创建)并修改可执行权限,然后设置该服务开机自启:
打开 /etc/rc.local 文件,往其中添加运行自定义脚本的命令即可。
【注】 /etc/rc.local 以及自定义脚本中都不能使用系统变量(比如 $HOME ,原因在于其执行自定义脚本时并没有继承系升雀统变量)。
此时会显示开机自启执行脚本的输出结果。
G. ubuntu开机和登陆后自动运行哪些脚本程序
1.开机启动时自动运行程序
Linux 加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init。init根据配置文件继续引导过程,启动其它进程。通常情况下,修改放置在 /etc/rc或 /etc/rc.d 或 /etc/rc?.d 目录下的脚本文件,可以使init自动启动其它程序。例如:编辑 /etc/rc.d/rc.local 文件(该文件通常是系统最后启动枯顷戚的脚本),在文件最末加上一行“xinit”或“startx”,可以在开机启动后直接进入X-Window。
开机后还要自动运行很多服务,如mysql,memcache等。
2.登录时自动运行程序
用户登录时,bash首先自动执行系统管理员建立的全局登录script :/ect/profile。然后bash在用户起始目录下按顺序查找三个特殊没陵文件中的一个:/.bash_profile、/.bash_login、 /.profile,但只执行最先找到的一个。 因此,只需根据实际需要在上述文件中加入命令就可以实现用户登录时自动运行某些程序(类似于DOS下的Autoexec.bat)。
注意不是自动运行.bashrc脚本,而是.profile脚本。
可以看看源码.profile:
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
,.. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin"乎或 ] ; then
PATH="$HOME/bin:$PATH"
fi
可以看出,我们平时使用的.bashrc文件,仅仅是被.profile脚本加载的。
所以很多同学默认是zsh会导致纯粹按照某些文章指示编写.bashrc脚本的环境变量不起作用,比如使用rvm的。
3.退出登录时自动运行程序
退出登录时,bash自动执行个人的退出登录脚本/.bash_logout。例如,在/.bash_logout中加入命令“tar -cvzf c.source.tgz *.c”,则在每次退出登录时自动执行 “tar” 命令备份 *.c 文件。
4.定期自动运行程序
Linux有一个称为crond的守护程序,主要功能是周期性地检查 /var/spool/cron目录下的一组命令文件的内容,并在设定的时间执行这些文件中的命令。用户可以通过crontab 命令来建立、修改、删除这些命令文件。
例如,建立文件crondFile,内容为“00 9 23 Jan * HappyBirthday”,运行“crontab cronFile”命令后,每当元月23日上午9:00系统自动执行“HappyBirthday”的程序(“*”表示不管当天是星期几)。
因为.bashrc或者说.profile文件是在登录时才执行的,如果不登陆能执行么,或者说如果要运行服务怎么办,此时并没有某个用户登陆,也就麽有相应的环境变量了。
比如启动rails的服务的www用户。
使用sudo命令的参数-i
查看manue:
-i [command]
The -i ( simulate initial login ) option runs the shell specified by the password database entry of the target user as a login shell. This means that login-specific resource files such as .profile or .login will be read by the shell. If a command isspecified, it is passed to the shell for execution via the shell's -c option. If no command is specified, an interactive shell is executed. sudo attempts to change to that user's home directory before running the shell. The security policy shall initialize the environment to a minimal set of variables, similar to what is present when a user logs in. The Command Environment section in the sudoers(5) manual documents how the -i option affects the environment in which a command is run when the sudoers policy is in use.
H. 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文件
I. Ubuntu Desktop下自动启动终端并运行脚本
1.进入桌面后按 Alt + F2 组合键,输入 gnome-session-properties 并回车
2.点击 添加 在command栏里输入我们要添加的程序
gnome-terminal -x bash -c "/home/alex/test.sh"
然后点击 保存 --> 关闭
3.重启测试
如果想要执行时有root权限
1. /etc/sudoers 添加权限外
如普通用户链帆名为 alex 则将下列内容写入上文件
alex ALL=(ALL:ALL)NOPASSWD:ALL
2.设置 ASK_PASS 使用 sudo -A script.sh
①同目录下建立密码读取文件 .pw ,输入以下内容并添加可执行权限
②在需要要执行的脚本中添加 export SUDO_ASKPASS=.pw
③在需要的指令前添加 sudo -A
via:
ubuntu开机自动打开终端并以root权含竖限执行程序
sudo 不用输入密码
PS:
Ubuntu下自谈唤大动启动终端并运行脚本或命令
Ubunut下几种设置脚本开机启动的方法