如何设置ubuntu开机自动执行指令

最近弄了个ssh,但是必须在本地就启动socks,每次开始那是相当的烦人啊,于是我就开始寻求在ubuntu中自动执行指令的方法

发现在用户的根目录中的.profile合乎要求

打开文件,我们发现有这么一段话

~/.profile: executed by the command interpreter for login shells.

也就是说,这个文件,是在系统开始登陆的时候执行的,因为是在用户的根目录下,只有在该用户登陆的时候才会执行

This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login exists.

这一行告诉我们,其实执行是有顺序的,如果之前系统找到了.bash_profile或者.bash_login的话,.profile是不会执行的

但幸运的是,在ubuntu中,一般默认是只有.profile

在文件的最后加上你想执行的命令就行啦!

### 配置 Ubuntu 系统开机自动执行命令 #### 使用 `crontab` 实现定时任务启动 对于简单的命令或脚本,可以利用用户的 crontab 来安排任务,在系统启动时触发。编辑当前用户的 cron 表单: ```bash crontab -e ``` 添加如下条目以指定在每次重启后运行特定指令[^1]。 @reboot /path/to/command arg1 arg2 这种方式适合不需要超级用户权限的任务。 #### 利用 Systemd 服务单元文件 现代 Linux 发行版普遍采用 systemd 初始化框架管理服务生命周期。为此目的可创建自定义的服务单元文件 `/etc/systemd/system/myservice.service`: ```ini [Unit] Description=My custom startup script [Service] ExecStart=/usr/bin/python3 /home/user/script.py Restart=on-failure [Install] WantedBy=multi-user.target ``` 保存并启用该服务以便于下次引导加载期间激活它[^2]: ```bash systemctl enable myservice.service ``` #### 编写 Init Script 并注册至 Rc Levels 传统方法涉及编写 shell 脚本来完成所需操作,并将其放置于 `/etc/init.d/` 下面作为 init 脚本的一部分。之后通过链接到相应 rc level 的目录下使能其随系统一同初始化。 创建测试脚本 `/etc/init.d/test.sh` : ```bash #! /bin/bash touch /tmp/test123.txt ``` 赋予执行权限以及建立软连接让此脚本能在第三级多用户模式下被执行[^3]: ```bash chmod a+x /etc/init.d/test.sh ln -s ../init.d/test.sh /etc/rc3.d/S01test.sh ``` 上述三种途径均可达成目标;然而推荐优先考虑前两种方案因为它们更贴近当代操作系统设计理念且易于维护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值