我已将以下代码放入我的.profile
ps cax | grep jackd > /dev/null
if [ $? -eq 0 ]; then
echo "Jack is aready running."
fi
if [ "$SESSION_TYPE" != "remote/ssh" ] && [ "$DISPLAY" ]; then
ps cax | grep jackd > /dev/null
if [ $? -eq 0 ]; then
echo "Jack is aready running."
else
jackd --sync -P80 -p128 -dalsa -dhw:UA25 -r48000 -p64 -n3 -Xraw &
jack_wait -w
alsaj &
~/deployed/syzmo/x86_64-GNU%2fLinux/syzmo_client_studio &
fi
fi
当我从 KDE 注销并登录 tty1 时,我看到消息“Jack 已在运行”。列出进程时,我看到我已经启动了它,所以我断定 jack 从未停止过。怎么会这样?
以下是我从 tty1 登录时通过 ps -u 看到的内容:
PID TTY TIME CMD
2053 ? 00:32:39 jackd
2079 ? 00:00:00 alsaj
2082 ? 00:11:00 alsa_in
10265 tty1 00:00:00 bash
10295 tty1 00:00:00 ps
为什么我仍然能在正在运行的进程中看到jackd
和?alsa_in
跟进:
由于注销时进程不会终止,因此必须有一个不以 root 身份运行的相应注销脚本。有没有办法清除由此引起的任何副作用.profile
?
答案1
由于您没有停止它,因此它仍在运行。您不应该在 .profile 中启动这样的守护进程。正常安装的 jackd 包将设置为在适当的时间通过 upstart 自动启动和停止。