我想,/lib/systemd/system/ 下的服务文件确定服务是由哪个用户启动的。但显然情况并非(总是)如此。这是一个例子:
~# ps faux
...
whoopsie 1445 0.0 0.1 388420 12604 ? Ssl 08:22 0:00 /usr/bin/whoopsie -f
...
从上面的输出我们看到,进程 'whoopsie' 在用户 'whoopsie' 下运行
现在我们看一下启动脚本:
~# cat /lib/systemd/system/whoopsie.service
Description=crash report submission daemon
After=network-online.target
Wants=network-online.target
[Service]
Environment="CRASH_DB_URL=https://daisy.ubuntu.com"
ExecStart=/usr/bin/whoopsie -f
Restart=always
[Install]
WantedBy=multi-user.target
在该启动脚本中没有用户定义。
那么是什么决定了哪个用户启动了一个进程呢?