我的需求是 go 在启动的时候把自生加入开机自启,并且不依赖其他软件。
我在 windows 环境,go 可以新建一个文件(AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\start.bat
),在脚本内可以调用 exe 程序 重启就会自动启动
但是在 linux 上,我把编译后的 go 文件进行执行,里面的代码有一句是 os.Create("/etc/init.d/start.sh")
在创建时 会创建失败,我以为是权限的问题 ,但是我是使用的是root
用户,并且使用chmod 777
了。
实际上 执行 os.Create("/tmp/start.sh")
是成功的
查到的方案基本上都是通过用shell
, 但是这样需要手动的添加
有没有办法解决linux
执行 os.Create("/tmp/start.sh")
失败的问题
linux 权限如下:
[root@localhost etc]# pwd
/etc
[root@localhost etc]# ll | grep init
drwxr-xr-x. 2 root root 24 Sep 27 23:42 gdbinit.d
lrwxrwxrwx. 1 root root 11 Sep 27 23:30 init.d -> rc.d/init.d
-rw-r--r--. 1 root root 511 Nov 16 2020 inittab
[root@localhost application]# ll
total 2076
-rwxr-xr-x. 1 root root 2111964 Oct 17 11:05 start
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.