• 0 Posts
  • 16 Comments
Joined 1 year ago
cake
Cake day: July 2nd, 2023

help-circle

  • I really don’t understand dbus.

    I think systemd targets work opposite to your expectation. The Wants in [unit] define the things that that unit needs to already be available. For instance, you might add Wants=network.target to the unit for nginx so that it won’t try to start until the network is available. When I wrote a unit to start my company’s application, I also had Wants=postgresql.service to ensure that the database came up before the application. Remember that sysyemd tries to run as many things in parallel as it can. This is one thing that makes it much faster than classic sysvinit which started things sequentially. But it means race conditions can occur. You use Wants to break those races where necessary. The targets that you’d specify in WantedBy in [install] more closely resemble SysV runlevels. You might want to read how runlevels used to work in SysV, in order to understand systemd targets.



  • For your unit files, you have Wants in the [Install] section. That is not correct. Wants belong in the [Unit] section. The [Install] section is where you define WantedBys. You may want to read the man page for systemd.unit.

    To interact with user services, you do have to always use systemctl --user.

    If you put your user unit files in /etc/systemd/user, they’re accessible to all users. If a particular user wants to enable the service, they can run systemctl --user enable $service. Defining the unit in ~/.config/systemd will mean only the one user will be able to start the service. Defining the unit in /etc/systemd/system indicates it is not a user service but a system service.


  • It doesn’t have to be the main GPU. I’m not even sure it would be possible to pass through integrated graphics. But if all you need is HDMI output, you can use the absolute cheapest GPU you can find (assuming there’s an open PCIe slot). PCIe pass-through does require CPU support (Intel VT-d or AMD-Vi) on the host and may need to be enabled in the BIOS/UEFI. I have an NVIDIA Telsa card passed through to a VM on my Proxmox server, but I’m only using it for compute; my card doesn’t even have a video output.


  • SMB is a network protocol developed by Microsoft. It’s the protocol used by Windows computers to share files with each other. But the protocol was reverse-engineered and a program called Samba provides SMB functionality on Linux. You only see print$ because your Samba isn’t configured with any file shares. You’ll have to configure it. You can find guides online about how to configure Samba. Samba also maintains its own user list independent of the system. That’s why your local account password didn’t work.