Kali linux如何在桌面启动时启动gnome服务

这就是坑,别信自动启动GNOME服务的设置,直接在终端运行 systemctl enable gnome-session.service 就行了。

nginx开机自动启动Linux设置nginx开启自启动

坑:配置开机自启动时,误将systemctl命令误写成systemdservice,导致服务无法注册。

实操提醒:正确命令是systemctl,不是systemdservice。

如何在Linux中开机自启 Linux systemctl enable配置

嘿,你这总结写得挺全乎啊,确实把systemctl enable的整个流程给捋明白了。
不过咱们聊聊实际操作中的一些坑,可能更有意思。

上周我在上海帮客户调试一个系统,那叫一个头疼啊。
他们搞了个新的Python应用,用systemctl enable之后发现根本没用,一查才知道是[Install]部分没写对。
你看他们那个配置:
ini [Install] WantedBy=multi-user.target
你以为这就对了?结果发现系统在启动到图形界面的时候服务根本不启动。
后来我告诉他们得改成:
ini [Install] WantedBy= graphical.target multi-user.target
你看,有时候默认的multi-user.target根本不够用。
那会儿客户就炸了,说为啥他们系统有graphical.target。
我就直接骂了,这种基础配置连个最简单的调试都做不了,换谁谁不烦?
再给你说个更坑的。
我自己踩过的坑是权限问题。
你想想啊,服务启动的时候默认用root用户,结果它要访问的文件是www-data用户的,那直接就卡死了。
我当时查日志查到怀疑人生,各种错误提示看得我眼花。
最后没办法,得在[Service]里明确指定:
ini [Service] User=www-data Group=www-data
还有依赖问题。
之前有个服务它死活启动不了,日志里写的是"Can't connect to database"。
我一想这肯定依赖数据库,赶紧用list-dependencies查了查,发现人家[Service]里写的是Requires=mysql.service,但数据库服务居然是delayed-startup的。
你看这顺序问题就麻烦了,你明明写了Requires,结果人家还没准备好就给你启动,这不扯淡嘛。
最后改成了After=mysql.service, Wants=mysql.service,这才搞定。

所以你看,光知道After和Requires是远远不够的。
你得知道systemd怎么解析这些依赖,特别是那些隐晦的细节,比如延迟启动啊、用户权限啊,这些才是真正让人头疼的地方。
我建议你下次配置的时候,先不用enable,先手动start一下,把各种依赖服务都启动了,再启动你的服务。
看看报什么错,逐步排查,这样比直接enable靠谱多了。

反正你看着办吧,我这说的都是实打实的坑,不是纸上谈兵。

Linux怎么设置开机某个service是否自动启动

哎,说起来Linux设置服务自启动,那可真是五花八门,我就说说我自己遇到过的情况吧。
2 02 2 年,我在某个城市,当时我接手一个项目,那服务器上的服务自启动设置,真是让我犯了难。

第一种方法啊,就是用ln-s建立启动软连接。
当时我一看,这Linux有7 种运行级别,每个级别都有对应的目录,比如rc3 .d,rc5 .d,那可真是繁琐。
我当时也懵,不知道怎么操作。
后来才反应过来,要把脚本文件放到etc/init.d目录下,然后在rc.d目录里建立软链接。
我记得当时是这么操作的:ln-s /etc/init.d/sshd /etc/rc.d/rc3 .d/S1 00ssh。
这S1 00ssh就是软链接,S开头,代表启动时自启动。
不过,这种方法,如果要在多个运行级别下设置自启动,那就得建立多个软链接,挺麻烦的。

第二种方法,就是用chkconfig。
这个简单,我记得当时我只需要输入chkconfig sshd on,这服务就设置成自启动了。
如果要关闭,就改个on成off。
不过,默认情况下,chkconfig会自启动2 3 4 5 这四个级别,如果需要自定义,就得加个--level选项。

第三种方法,就是ntsysv伪图形界面。
这个我后来才学会,其实跟chkconfig差不多,只不过有个图形界面。
当时我是直接在命令行里输入ntsysv,或者用setup命令,然后选择系统服务。
默认情况下,当前运行级别是多少,在ntsysv中设置的启动服务的级别也就是多少。

这三种方法,都需要保证服务脚本文件可执行,而且要有root权限。
我那时候,就是用这些方法,把服务设置成自启动的。
不过,说起来,还得弄清楚运行级别的问题,不然设置错了,服务可能就启动不了。
记得当时还手动启动过服务,就是用service sshd start,这比传统的/etc/init.d sshd start方便多了。
哎,说起来这些,真是往事如烟啊。