FreeBSD 中的用户服务?

FreeBSD 中的用户服务?

比如说,我想在登录时为我的用户启动 emacs 服务器。在 systemd Linux 系统中,我可能会创建一个单元文件~/.config/systemd/user/emacs.service并使用 启用它systemctl --user enable emacs.service

FreeBSD 中是否有类似的东西?理想情况下,我想要一个不需要root权限的解决方案。

答案1

我对 FreeBSD 不是很熟悉,但传统的 Linux/Unix 方式是通过登录 shell 的配置来启动,例如~/.profilesh/bash/ksh 或~/.logincsh。

也就是说,您只需emacs --daemon &在配置文件末尾附近的某个位置添加内容,并选择检查以确保它尚未运行,或者仅在设置了 $DISPLAY 时运行它,等等。

答案2

您也可以使用“daemon”,只是为了有所不同。Man daemon(8)。Daemon -u 用户程序程序参数。

答案3

根据您的窗口管理器/桌面环境,您可以选择使用其内置功能。

例如,Fluxbox 可以通过配置在启动时启动应用程序~/.fluxbox/startup

~/.xinitrc确保您的应用程序能够自动启动,而不管您使用哪个 WM/DE,一种通用的方法是在您的文件中添加一行。

如果您的 WM/DE 使用~/.xsession~/.xinitrc请创建一个符号链接~/.xsession指向~/.xinitrc

编辑~/.xinitrc现在也会编辑~/.xsession。但是,它不能反向工作。 中的任何更改~/.xsession都不会出现在 中~/.xinitrc。 可以将其视为 UDP 连接,一条单行道。:)

ln -s ~/.xinitrc ~/.xsession

要添加启动应用程序,请添加一行~/.xinitrc并指定应用程序。

例如,要flameshot在启动时自动启动,请在文件中的 WM/DE exec 命令之前的某处添加以下内容~/.xinitrc

flameshot &

&非常重要,因为如果没有它,所需的程序将会运行并关闭,然后继续运行,~/.xinitrc导致启动时没有打开的窗口。

这是我的~/.xinitrc参考

# SET PROPER locale(1) with LC_ALL VARIABLE
export LC_ALL=en_US.UTF-8

# GTK ANTIALIASING
export GDK_USE_XFT=1

# FORCE LIBREOFFICE TO USE GTK THEME
export OOO_FORCE_DESKTOP=gnome

# QT SETTINGS
export QT_XFT=1                           # ANTIALIASING
export GTK2_RC_FILES="${HOME}/.gtkrc-2.0" # QT MUST KNOW GTK2 LOCATION
export QT_QPA_PLATFORMTHEME=qt5ct         # QT QT5CT

# PICOM/OPACITY
picom --config ~/.config/picom.conf &

# PRESTARTED APPS 
claws-mail &
networkmgr &
xscreensaver -no-splash &
flameshot &

# CREATE TASKBAR
fbpanel &

# SET WALLPAPER WITH FEH
~/.fehbg &

# WINDOW MANAGER
fluxbox

我希望这有帮助。 :)

相关内容