本文目录导读:

我来介绍几种常见的开机自启脚本编写方法,覆盖Windows和Linux系统。
🔷 Windows系统
任务计划程序(推荐)
# 创建开机自启任务(以管理员身份运行PowerShell)
$action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-File C:\Scripts\startup.ps1"
$trigger = New-ScheduledTaskTrigger -AtStartup
$principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries
Register-ScheduledTask -TaskName "MyStartupScript" `
-Action $action `
-Trigger $trigger `
-Principal $principal `
-Settings $settings
启动文件夹方式
:: 将脚本放入启动文件夹 :: 当前用户启动文件夹 %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\ :: 所有用户启动文件夹 %ProgramData%\Microsoft\Windows\Start Menu\Programs\StartUp\ :: 示例:创建快捷方式到启动文件夹 @echo off echo [InternetShortcut] > "%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\myscript.url echo URL=file:///C:/Scripts/startup.bat >> "%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\myscript.url echo IconIndex=0 >> "%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\myscript.url echo IconFile=C:\Scripts\startup.bat >> "%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\myscript.url
注册表方式
@echo off :: 当前用户 reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "MyScript" /t REG_SZ /d "C:\Scripts\startup.bat" /f :: 所有用户(需要管理员权限) reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Run" /v "MyScript" /t REG_SZ /d "C:\Scripts\startup.bat" /f
服务方式(高级)
:: 使用NSSM工具创建服务 nssm install MyStartupService "C:\Scripts\startup.bat" nssm set MyStartupService Start SERVICE_AUTO_START
🔷 Linux系统
Systemd服务(推荐)
# 创建服务文件 sudo cat > /etc/systemd/system/startup-script.service << 'EOF' [Unit] Description=My Startup Script After=network.target [Service] Type=simple ExecStart=/usr/local/bin/startup.sh Restart=on-failure User=root [Install] WantedBy=multi-user.target EOF # 启用服务 sudo systemctl daemon-reload sudo systemctl enable startup-script.service sudo systemctl start startup-script.service
rc.local方式
# 编辑/etc/rc.local sudo cat > /etc/rc.local << 'EOF' #!/bin/bash # 开机自启脚本 # 启动自定义服务 /usr/local/bin/startup.sh & # 启动Python应用 cd /opt/myapp && python3 app.py & exit 0 EOF # 添加执行权限 sudo chmod +x /etc/rc.local sudo systemctl enable rc-local
Crontab方式
# 编辑crontab crontab -e # 添加以下行(@reboot表示开机执行) @reboot /usr/local/bin/startup.sh # 带延迟执行 @reboot sleep 30 && /usr/local/bin/startup.sh
init.d脚本(旧系统)
# 创建init脚本
sudo cat > /etc/init.d/startup-script << 'EOF'
#!/bin/bash
### BEGIN INIT INFO
# Provides: startup-script
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start my script
# Description: Enable service for startup
### END INIT INFO
case "$1" in
start)
echo "Starting startup script..."
/usr/local/bin/startup.sh &
;;
stop)
echo "Stopping startup script..."
pkill -f startup.sh
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
;;
esac
EOF
# 设置权限并启用
sudo chmod +x /etc/init.d/startup-script
sudo update-rc.d startup-script defaults
🔷 示例脚本模板
Windows PowerShell脚本
# startup.ps1
$logFile = "C:\Logs\startup.log"
# 记录启动时间
Add-Content -Path $logFile -Value "[$(Get-Date)] Script started"
# 启动应用
try {
# 启动Python应用
Start-Process -FilePath "python" -ArgumentList "C:\myapp\app.py"
# 启动Node.js应用
Start-Process -FilePath "node" -ArgumentList "C:\myapp\server.js"
# 启动批处理文件
Start-Process -FilePath "C:\scripts\service.bat"
Add-Content -Path $logFile -Value "[$(Get-Date)] Applications started successfully"
} catch {
Add-Content -Path $logFile -Value "[$(Get-Date)] Error: $_"
}
Linux Shell脚本
#!/bin/bash
# startup.sh - 开机自启脚本
LOG_FILE="/var/log/startup.log"
# 记录启动信息
echo "[$(date)] Starting startup script" >> $LOG_FILE
# 等待网络就绪
sleep 10
# 启动应用
function start_service() {
local name=$1
local command=$2
if $command; then
echo "[$(date)] $name started successfully" >> $LOG_FILE
else
echo "[$(date)] Failed to start $name" >> $LOG_FILE
fi
}
# 启动服务
start_service "Web Server" "/usr/local/bin/webapp.sh"
start_service "Database" "systemctl start postgresql"
# 检查进程状态
echo "[$(date)] Services status:" >> $LOG_FILE
ps aux | grep -E "webapp|postgres" >> $LOG_FILE
🔷 注意事项
- 权限管理:确保脚本有正确执行权限
- 日志记录:添加日志以便调试
- 延迟执行:某些服务可能需要等待系统完全启动
- 错误处理:添加try-catch或exit code处理
- 测试验证:重启系统测试是否正常运行
选择哪种方法取决于你的具体需求和操作系统版本,对于现代系统,推荐使用任务计划程序(Win)或Systemd(Linux)。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播