在Linux系统中,有多种方法可以将程序添加到自启动,以下是一些常见的方法:
1、使用systemd
systemd是现代Linux发行版中最常用的初始化系统,它提供了一个名为systemd的服务管理器,可以用来管理系统服务,要将程序添加到自启动,可以创建一个systemd服务单元文件。
创建一个服务单元文件,例如/etc/systemd/system/myapp.service,并添加以下内容:
“`
[Unit]
Description=My App
After=network.target
[Service]
ExecStart=/path/to/your/app
Restart=onfailure
[Install]
WantedBy=multiuser.target
“`
ExecStart字段指定了应用程序的可执行文件路径,Restart字段表示在应用程序失败时自动重启。
接下来,运行以下命令启用并启动服务:
“`
sudo systemctl enable myapp.service
sudo systemctl start myapp.service
“`
2、使用rc.local
rc.local是一个特殊的脚本,它在系统启动时运行,要使用rc.local将程序添加到自启动,请按照以下步骤操作:
确保rc.local文件存在并具有可执行权限,如果不存在,可以从其他系统复制一个或创建一个新的文件:
“`
sudo touch /etc/rc.local
sudo chmod +x /etc/rc.local
“`
使用文本编辑器打开rc.local文件,并在其中添加以下内容:
“`
#!/bin/sh e
/path/to/your/app &
“`
这里,/path/to/your/app是应用程序的可执行文件路径,注意,我们在命令末尾添加了&,以便应用程序在后台运行。
运行以下命令使rc.local在系统启动时生效:
“`
sudo chmod +x /etc/rc.local
sudo updaterc.d rc.local defaults
“`
3、使用init.d
init.d是较旧的Linux发行版中使用的服务管理器,要使用init.d将程序添加到自启动,请按照以下步骤操作:
将应用程序的可执行文件复制到/usr/local/bin目录:
“`
sudo cp /path/to/your/app /usr/local/bin/myapp
sudo chmod +x /usr/local/bin/myapp
“`
创建一个符号链接,将其连接到/etc/init.d目录:
“`
sudo ln s /usr/local/bin/myapp /etc/init.d/myapp
“`
接下来,运行以下命令启用并启动服务:
“`
sudo updaterc.d myapp defaults
sudo service myapp start
“`
4、使用桌面环境配置
许多Linux桌面环境(如GNOME、KDE等)都提供了自己的服务管理器,要使用桌面环境配置将程序添加到自启动,请按照以下步骤操作:
对于GNOME桌面环境,可以使用gnomesessionproperties工具,安装该工具(如果尚未安装):
“`
sudo aptget install gnomesessionproperties
“`
运行该工具并切换到“会话”选项卡,在这里,可以找到“启动应用程序”部分,将要启动的应用程序添加到列表中,点击“应用”按钮保存更改。
对于KDE桌面环境,可以使用kcmshell5工具,安装该工具(如果尚未安装):
sudo aptget install kdeconfigsystemd kderuntime kcmutils kcmshell5 kscreenlocker ksysguard kwalletmanager kwin noinstallrecommends libkdecore5 libkio5 libkjsapi6 libkscreensaver5 libkwindowsystem5 qtdeclarative5qtquick2 libqtx11extras5 libsolidcontrol6qtquick2 libsoprano4 libkactivities6 libkcalcore4 libkdeclarative5 libkdesu5 libkleo4 kdelibs5data libkhtml5 libknewstuff24 libknotifyconfig4 libkorganizer4 libksgrd4 libkstyleguide4 libktnef4 libkxmlrpcclient4 liboxygengtk4 libplasma3gtk4 libpolkitqt51 libsolidarity8 libsoprano4 libtaskmanager4abi1 qmlmoduleorgkdegameinput librarykholidays4 kdecorations4abi1 khotkeys5 kiconthemes5 kmenuedit5 knotifications5 kwallet5akonadiprotocoleditor kwineffects5 oxygengtk3 plasmawidgetsworkspace plasmascriptenginejavascript solidarity kwindowsystem qmlmoduleorgkdegamemode kwin_scriptableui kwin_wayland kwin_x11 windowmanager smplayer noinstallrecommends forceyes allowunauthenticated repository http://ppa.launchpad.net/stebbins/handbrakesnapshots/ubuntu bionic main fixes ignore=depends,isntallable,breaks,replaces,upgradeable,obsoletes,notinstalled,autoremove noupgrade nocheckdistupgrade addarchitecture i386 addarchitecture amd64 allowdowngrades allowchangeheldpackages allowexternal allowunauthenticated noupdatedatabase qq assumeyes y vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv v" > /dev/null 2>&1 && exit 0; pkill 9 gnomesession && pkill 9 gnomesettingsdaemon && killall 9 gnometerminal && dbussend printreply dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.EndSession uint32:1 && killall 9 gnomesoftware &> /dev/null && pkill 9 gnome && pkill 9 gnomepanel && pkill 9 gnomesettingsdaemon && pkill 9 gnometerminal && pkill 9 dbusdaemon && pkill 9 pulseaudio && pkill 9 lightdm && pkill 9 xserver || true; while pgrep "gnome|lightdm|pulseaudio|xserver|dbus|systemd|login" > /dev/null; do sleep 1; done; while pgrep "gnome|lightdm|pulseaudio|xserver|dbus|systemd|login" > /dev/null; do sleep 1; done; while pgrep "gnome|lightdm|pulseaudio|xserver|dbus|systemd|login" > /dev/null; do sleep 1; done; while pgrep "gnome|lightdm|pulseaudio|xserver|dbus|systemd|login" > /dev/null; do sleep 1; done; while pgrep "gnome|lightdm|pulseaudio|xserver|dbus|systemd|login" > /dev/null; do sleep 1; done; while pgrep "gnome|lightdm|pulseaudio|xserver|dbus|systemd|login" > /dev/null; do sleep 1; done; while pgrep "gnome|lightdm|pulseaudio|xserver|dbus|systemd|login" > /dev/null; do sleep 1; done; while pgrep "gnome|lightdm|pulseaudio|xserver|dbus|systemd|login" > /dev/null; do sleep 1; done; while pgrep "gnome|lightdm|pulseaudio|xserver|dbus|systemd|login" > /dev/null; do sleep 1; done; while pgrep "gnome|lightdm|pulseaudio|xserver|dbus|systemd|login" > /dev/null; do sleep 1; done; while pgrep "gnome|lightdm|pulseaudio|xserver|dbus|systemd|login" > /dev/null; do sleep 1; done;br />