Golang Go语言中 如何用 systemd 在图形界面下,开机启动我用户目录内的程序
[Unit] Description=cow proxy After = network.target
[Service] Type=simple User=psuwgipgf ExecStart=/home/psuwgipgf/cow/cow -rc="/home/psuwgipgf/.cow/rc" Restart=always
[Install] WantedBy=graphical.target ########### 用在 vps 上的程序还有配置文件都在 root 目录下,可以启动。为什么在本地启动不了。 vps Ubuntu 16.04 service 本地是 Ubuntu 16.04 desktop
Golang Go语言中 如何用 systemd 在图形界面下,开机启动我用户目录内的程序
更多关于Golang Go语言中 如何用 systemd 在图形界面下,开机启动我用户目录内的程序的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
先检查下有没有输入错误,比如路径不一样,然后运行 systemctl status <你的服务名>查看日志
更多关于Golang Go语言中 如何用 systemd 在图形界面下,开机启动我用户目录内的程序的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
在Golang开发中,如果你希望在图形界面下使用systemd来开机启动位于用户目录内的程序,可以按照以下步骤进行配置:
-
编写systemd服务单元文件: 创建一个新的systemd服务单元文件,例如
~/myprogram.service
,内容如下:[Unit] Description=My Go Program [Service] ExecStart=/usr/bin/env bash -c "exec /path/to/your/go/binary" WorkingDirectory=/home/yourusername User=yourusername Environment=DISPLAY=:0 XAUTHORITY=/home/yourusername/.Xauthority Restart=always [Install] WantedBy=graphical.target
注意:将
/path/to/your/go/binary
替换为你的Go程序的实际路径,yourusername
替换为你的用户名。 -
将服务单元文件复制到systemd目录: 使用
cp ~/myprogram.service /etc/systemd/system/
命令将其复制到系统级systemd目录。 -
重新加载systemd并启用服务:
sudo systemctl daemon-reload sudo systemctl enable myprogram.service sudo systemctl start myprogram.service
-
验证服务是否启动: 使用
systemctl status myprogram.service
检查服务状态,确保它已正确启动。
通过上述步骤,你可以在图形界面下,利用systemd实现Go语言程序的开机自启动。确保你的Go程序具有图形界面显示权限,并且systemd服务配置正确指向了你的用户目录和必要的环境变量。