a IF I don't create a new tree, tree boot exists by just installing 66-pkgs.
b IF one of those pkgs is root-66 then the tree root is created, right. It is active on top of boot.
c IF then I install dhcpcd-66serv, and I just enable it without specifying a tree, on which tree is it being added? Root?
d If I didn't install root-66tree but enabled tty1 with tty@ and have not still added any new tree, then tty1 is active on boot-tree?
a) if you ONLY install 66, you have nothing, no boot tree, no root tree , no tree at all. You start from the scratch, the machine will no boot because you don't have any service at all, you only have the tools and that's all.
When you install the boot-66serv it will install all the file service for the boot process and create the tree boot, then enable the service for the boot process on the tree boot. Pacman will install the service file at /etc/66/service. So, if you take a look on this directory, you will find ALL service installed and available on the system.
b)right , this package will create the tree root, MARK it as CURRENT and enable tty1 and tt2 on it.
c)if you install dhcpcd-66serv ALONE(so root-66tree was not installed), the 66 tools will ask you the tree to use to enable it because no tree was define as current one.
d) same case here, no tree was define as current, so 66-enable will expect the -t option to know which tree to use. when you do 66-info -T without any arguments, the tools will show you ALL tree available for the current user of the process with some information as if the tree is enabled or not, if it's the current one..
if you do 66-info -T boot , the tools will show you ALL service enabled on the tree.
Now i will try to compare command and concept form s6opts to 66 .(i think you will appreciate it) .
Assumptions : we start from the scratch, no tree/database exist
How to add an rc service to a specific database?
with s6opts :
first you need to create a database
s6opts add nfs bundle-Nfs -> this will create a new database (a TREE on 66) called nfs and enable bundle-Nfs on it.
now you need to compile this fresh database
s6opts compile Nfs nfs -> this will compile a new database (a TREE on 66 ) called Nfs with the source called nfs
then you need to make the database as the current one
s6opts switch Nfs
and finally you start it
s6opts update bundle-Nfs
on 66 :
first you need to create a tree
66-tree -cn Nfs -> this will create a new tree (a DATABASE) called Nfs AND mark it as current one
finally you start the service
66-enable -S bundle-Nfs -> this will enable the service onto the tree Nfs and start it
Well, as you can see the operation with 66 is clearly more easier and quick than s6opts. Now, imagine that you don't mark the Nfs tree as current one like this :
66-tree -n Nfs -> this create a new tree called Nfs but without marked it as current.
how i can enable the bundle-Nfs on this tree
66-enable -t Nfs -S bundle-Nfs -> you specify the tree to use directly on the command line. This is impossible under s6otps, you need to switch first to the database that you want to use. That means that you can have multiple tree (database) and deal with service on it directly by the command line with the -t options. This is also valid for the majority of the 66 tools.
So, a big difference exist between s6opts and 66. S6opts only accept bundle,longrun,oneshot service on a database.YOU CANNOT deal with classic service onto a database with s6opts. With the tree concept on 66 you CAN have classic,bundle,longrun,oneshot service on the same tree.
Assumptions: we have now created a tree/database called Nfs
How to enable a classic service?
with s6opts:
s6opts enable ntpd -> this will enable and start the service ntpd
with 66 :
66-enable -S ntpd -> this will enable and start the service ntpd. If ANY tree was marked as current you need to specify it onto the command line like 66-enable -t Nfs -S ntpd
How to know which service is active?
with s6opts:
s6otps list -> this will display all the service currently in use
with 66 :
66-info -T Nfs -> this will display all the service onto the tree Nfs
How to know the status of a service?
with s6otps
s6opts status nptd
with 66
66-info -S ntpd
A big big change and surprise will come about the 66-info tool...(do you know the output of the systemctl status command? but shutttttt... only system:D can do this)
How to compile a database?
with s6opts
s6opts compile Nfs nfs -> this will compile and create the database called Nfs with the source called nfs
with 66
YOU DON'T CARE, this is done automatically
How to enable different kind of service in one pass?
with s6opts
IMPOSSIBLE
with 66
66-enable -S ntpd bundle-Nfs -> YOU DON'T need to care if the service is a classic, longrun,oneshot,bundle one, 66 tools will automatically make the necessary in function of the type encounter.
how to start/stop a service?
with s6opts
s6opts up npd -> ntpd is a classic service so you need to use up command
or
s6otps update bundle-Connmand -> bundle-Connmand is a bundle service so you need to use update command
with 66
66-start ntpd bundle-Connmand -> again you don't care about the kind of the service
how to reload a service?
with s6opts
IMPOSSIBLE directly
with 66
66-start -r ntpd
how to overwrite an existing classic service ?
with s6opts
change the service file then
s6opts disable ntpd
s6opts enable ntpd
with 66
change the service file then
66-enable -f ntpd
how to overwrite an existing bundle,oneshot,longrun service?
with s6opts
you need to recompile the database from the start
with 66
66-enable -f bundle-Nfs
how to change the command line of a daemon?
with s6opts
IMPOSSIBLE directly, you need to change the file of the service and recompile the database or disable/enable again the service if it's a classic one
with 66
go to /etc/66/env/ntpd/CMD_ARGS change what you want then :
66-start -r ntpd
Where the service is installed by pacman?
with s6opts
depending of the type of the service : classic at /etc/s6-serv/available/classic/ntpd, other at /etc/s6-serv/available/rc/bundle-Nfs
with 66
classic at /etc/66/service/ntpd, other at /etc/66/service/bundle-Nfs
How to create a service ?
with s6opts
s6opts create -> an you need to create a bunch of file and know exactly what file do and how the file works, and over all this, file for classic one and other one are not the same (and i don't talk about logger part)
with 66
one file for ALL kind of service (and the logger also can be created automatically)
how to know the dependencies of a service
with s6opts
nice try peon
with 66
66-info -S bundle-Nfs
how to view the log of a service
with s6opts
no command at all, open your favorite editor and search into /var/log/{s6serv,s6rcserv}
with 66
66-info -S -p20 nptd
how to create an instance service
with s6opts
what's the hell is that?
with 66
66-enable -I tty1 tty@ -> this command is now deprecated , on the new release it will be : 66-enable tty@ tty1
Hope those little example help you to understand the things